[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Thu Dec 16 23:26:14 MST 2010
The branch, master has been updated
via 14ebc5b Fix crash when --backup-dir is excessively long.
from aef2b8c Enhance --chmod to allow octal values.
;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 14ebc5b618ec6d4668e120acc7a75ae8efd677e7
Author: Wayne Davison <wayned at samba.org>
Date: Thu Dec 16 22:15:04 2010 -0800
Fix crash when --backup-dir is excessively long.
-----------------------------------------------------------------------
Summary of changes:
options.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
Changeset truncated at 500 lines:
diff --git a/options.c b/options.c
index 2529fe2..dc13592 100644
--- a/options.c
+++ b/options.c
@@ -2044,17 +2044,18 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
}
if (backup_dir) {
+ size_t len;
while (*backup_dir == '.' && backup_dir[1] == '/')
backup_dir += 2;
if (*backup_dir == '.' && backup_dir[1] == '\0')
backup_dir++;
- backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf);
- backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len;
- if (backup_dir_remainder < 128) {
+ len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf);
+ if (len > sizeof backup_dir_buf - 128) {
snprintf(err_buf, sizeof err_buf,
"the --backup-dir path is WAY too long.\n");
return 0;
}
+ backup_dir_len = (int)len;
if (!backup_dir_len) {
backup_dir_len = -1;
backup_dir = NULL;
@@ -2062,6 +2063,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
backup_dir_buf[backup_dir_len++] = '/';
backup_dir_buf[backup_dir_len] = '\0';
}
+ backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len;
}
if (backup_dir) {
/* No need for a suffix or a protect rule. */
--
The rsync repository.
More information about the rsync-cvs
mailing list