From: Wayne Davison Date: Sat, 7 Mar 2009 06:41:23 +0000 (-0800) Subject: Don't let --chmod tweak a 0 mode value (which marks a missing arg). X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/4e0fa131fe6a5d864bb6918ff32671484df132c9 Don't let --chmod tweak a 0 mode value (which marks a missing arg). --- diff --git a/flist.c b/flist.c index 7d01c9c5..1c15d8c0 100644 --- a/flist.c +++ b/flist.c @@ -794,7 +794,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist, if (!(xflags & XMIT_SAME_MODE)) mode = from_wire_mode(read_int(f)); - if (chmod_modes && !S_ISLNK(mode)) + if (chmod_modes && !S_ISLNK(mode) && mode) mode = tweak_mode(mode, chmod_modes); if (preserve_uid && !(xflags & XMIT_SAME_UID)) { @@ -1372,7 +1372,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist, if (!file) return NULL; - if (chmod_modes && !S_ISLNK(file->mode)) + if (chmod_modes && !S_ISLNK(file->mode) && file->mode) file->mode = tweak_mode(file->mode, chmod_modes); if (f >= 0) {