From: Wayne Davison Date: Sat, 13 Jun 2020 06:10:32 +0000 (-0700) Subject: The unalias argv array needs room for a trailing NULL. X-Git-Tag: v3.2.0pre1~11 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=bb484a799e289d3654adeb549b9990fcd9480a5f;p=rsync.git The unalias argv array needs room for a trailing NULL. --- diff --git a/NEWS.md b/NEWS.md index 14a11d7e..bfadccde 100644 --- a/NEWS.md +++ b/NEWS.md @@ -33,8 +33,6 @@ Protocol: 31 (unchanged) - Some rrsync fixes and enhancements to handle the latest options. - - Fixed a crash in the `--iconv` code. - - Fixed a problem with the `--link-dest`|`--copy-dest` code when `--xattrs` was specified along with multiple alternate-destination directories (it could possibly choose a bad file match while trying to find a better xattr @@ -50,6 +48,10 @@ Protocol: 31 (unchanged) - Fixed a mismatch in the RSYNC_PID values when running both a `pre-xfer exec` and a `post-xfer exec`. + - Fixed a crash in the `--iconv` code. + + - Fixed a rare crash in the popt_unalias() code. + ### ENHANCEMENTS: - Various checksum enhancements, including the optional use of openssl's MD4 & diff --git a/options.c b/options.c index 2e0f9da2..b6088405 100644 --- a/options.c +++ b/options.c @@ -1287,10 +1287,11 @@ static void popt_unalias(poptContext con, const char *opt) { struct poptAlias unalias; + memset(&unalias, 0, sizeof unalias); + unalias.longName = opt + 2; /* point past the leading "--" */ - unalias.shortName = '\0'; unalias.argc = 1; - unalias.argv = new_array(const char*, 1); + unalias.argv = new_array0(const char*, 2); unalias.argv[0] = strdup(opt); poptAddAlias(con, unalias, 0);