diff options
author | Martin Matuška <martin@matuska.org> | 2022-11-02 09:53:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-02 09:53:46 +0100 |
commit | 410ecbd3a7cb3f8d72f61428db1141baaed2919d (patch) | |
tree | ac38e811f2a33ce43eb19dc22c588e01675f47e8 /libarchive | |
parent | 356b0892112b80697bd48e05f3efcee41baf9b46 (diff) | |
parent | 8e0d0f36b197074614281643c691b27e4b43150e (diff) | |
download | libarchive-410ecbd3a7cb3f8d72f61428db1141baaed2919d.tar.gz |
Merge pull request #1786 from Malterlib/oob-windows-symlinks
Fix Windows symlink checks can reads past end of string
Diffstat (limited to 'libarchive')
-rw-r--r-- | libarchive/archive_write_disk_posix.c | 2 | ||||
-rw-r--r-- | libarchive/archive_write_disk_windows.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c index dd7eb9a5..4793878b 100644 --- a/libarchive/archive_write_disk_posix.c +++ b/libarchive/archive_write_disk_posix.c @@ -1996,6 +1996,8 @@ archive_write_disk_new(void) free(a); return (NULL); } + a->path_safe.s[0] = 0; + #ifdef HAVE_ZLIB_H a->decmpfs_compression_level = 5; #endif diff --git a/libarchive/archive_write_disk_windows.c b/libarchive/archive_write_disk_windows.c index 1b12a299..5474de16 100644 --- a/libarchive/archive_write_disk_windows.c +++ b/libarchive/archive_write_disk_windows.c @@ -1370,6 +1370,7 @@ archive_write_disk_new(void) free(a); return (NULL); } + a->path_safe.s[0] = 0; return (&a->archive); } @@ -2154,6 +2155,8 @@ check_symlinks(struct archive_write_disk *a) return (ARCHIVE_FAILED); } } + if (!c) + break; pn[0] = c; pn++; } |