[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Fri Dec 18 22:47:02 UTC 2015


The branch, master has been updated
       via  cbc42b9 Don't allow an empty flag name to --info & --debug.
       via  6ff5824 Document expand_item_list's args & make sure incr==0 works OK.
      from  32de6b7 Fix return of stat info from try_dests_reg().

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit cbc42b9c1668f0c11015c6eceec975b8656063f8
Author: Wayne Davison <wayned at samba.org>
Date:   Fri Dec 18 14:46:28 2015 -0800

    Don't allow an empty flag name to --info & --debug.

commit 6ff5824c25cdc586b4cd18f1e90fe226f2bf7a59
Author: Wayne Davison <wayned at samba.org>
Date:   Fri Dec 18 14:38:10 2015 -0800

    Document expand_item_list's args & make sure incr==0 works OK.

-----------------------------------------------------------------------

Summary of changes:
 NEWS      |  4 ++++
 OLDNEWS   |  2 +-
 options.c | 16 +++++++---------
 util.c    | 12 ++++++++++--
 4 files changed, 22 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/NEWS b/NEWS
index 1071988..740cb34 100644
--- a/NEWS
+++ b/NEWS
@@ -20,9 +20,13 @@ Changes since 3.1.1:
       right.
     - Don't create an empty backup dir for a transferred file that doesn't
       exist yet.
+    - Fixed a bug where --link-dest and --xattrs could cause rsync to exit if
+      a filename had a matching dir of the same name in the alt-dest area.
     - Allow more than 32 group IDs per user in the daemon's gid=LIST config.
     - Fix the logging of %b & %c via --log-file (daemon logging was already
       correct, as was --out-format='%b/%c').
+    - Fix erroneous acceptance of --info=5 & --debug=5 (an empty flag name is
+      not valid).
 
   ENHANCEMENTS:
 
diff --git a/OLDNEWS b/OLDNEWS
index 5a33d7a..295ab2e 100644
--- a/OLDNEWS
+++ b/OLDNEWS
@@ -3650,7 +3650,7 @@ Changes since 2.4.6:
 
 Partial Protocol History
 	RELEASE DATE	VER.	DATE OF COMMIT*	PROTOCOL
-	?? Aug 2015	3.1.2			31
+	?? Dec 2015	3.1.2			31
 	22 Jun 2014	3.1.1			31
 	28 Sep 2013	3.1.0	31 Aug 2008	31
 	23 Sep 2011	3.0.9			30
diff --git a/options.c b/options.c
index 7e93ea1..74239bf 100644
--- a/options.c
+++ b/options.c
@@ -411,16 +411,17 @@ static void parse_output_words(struct output_struct *words, short *levels,
 	const char *s;
 	int j, len, lev;
 
-	if (!str)
-		return;
-
-	while (*str) {
+	for ( ; str; str = s) {
 		if ((s = strchr(str, ',')) != NULL)
 			len = s++ - str;
 		else
 			len = strlen(str);
-		while (len && isDigit(str+len-1))
-			len--;
+		if (!len)
+			continue;
+		if (!isDigit(str)) {
+			while (len && isDigit(str+len-1))
+				len--;
+		}
 		lev = isDigit(str+len) ? atoi(str+len) : 1;
 		if (lev > MAX_OUT_LEVEL)
 			lev = MAX_OUT_LEVEL;
@@ -448,9 +449,6 @@ static void parse_output_words(struct output_struct *words, short *levels,
 				words[j].help, len, str);
 			exit_cleanup(RERR_SYNTAX);
 		}
-		if (!s)
-			break;
-		str = s;
 	}
 }
 
diff --git a/util.c b/util.c
index 41e0c78..3bece5c 100644
--- a/util.c
+++ b/util.c
@@ -1605,6 +1605,12 @@ int flist_ndx_pop(flist_ndx_list *lp)
 	return ndx;
 }
 
+/* Make sure there is room for one more item in the item list.  If there
+ * is not, expand the list as indicated by the value of "incr":
+ *  - if incr < 0 then increase the malloced size by -1 * incr
+ *  - if incr >= 0 then either make the malloced size equal to "incr"
+ *    or (if that's not large enough) double the malloced size
+ */
 void *expand_item_list(item_list *lp, size_t item_size,
 		       const char *desc, int incr)
 {
@@ -1616,9 +1622,11 @@ void *expand_item_list(item_list *lp, size_t item_size,
 			new_size += -incr; /* increase slowly */
 		else if (new_size < (size_t)incr)
 			new_size = incr;
-		else
+		else if (new_size)
 			new_size *= 2;
-		if (new_size < lp->malloced)
+		else
+			new_size = 1;
+		if (new_size <= lp->malloced)
 			overflow_exit("expand_item_list");
 		/* Using _realloc_array() lets us pass the size, not a type. */
 		new_ptr = _realloc_array(lp->items, item_size, new_size);


-- 
The rsync repository.



More information about the rsync-cvs mailing list