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 <way...@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.
_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to