Module Name: src Committed By: kamil Date: Tue Feb 25 09:01:25 UTC 2020
Modified Files: src/external/bsd/libarchive/dist/libarchive: archive_read.c Log Message: Avoid NULL pointer arithmetic Cherry-pick upstream patch: >From ec5b86b48e99c5501374b01606f1ccdae6a8a93e Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski <n...@gmx.com> Date: Mon, 24 Feb 2020 22:58:00 +0100 Subject: [PATCH] archive_read.c: silence UBSan warning about undefined behavior Fixes #1335 https://github.com/libarchive/libarchive/commit/ec5b86b48e99c5501374b01606f1ccdae6a8a93e.patch To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 \ src/external/bsd/libarchive/dist/libarchive/archive_read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/libarchive/dist/libarchive/archive_read.c diff -u src/external/bsd/libarchive/dist/libarchive/archive_read.c:1.1.1.4 src/external/bsd/libarchive/dist/libarchive/archive_read.c:1.2 --- src/external/bsd/libarchive/dist/libarchive/archive_read.c:1.1.1.4 Wed Jul 24 13:50:24 2019 +++ src/external/bsd/libarchive/dist/libarchive/archive_read.c Tue Feb 25 09:01:25 2020 @@ -891,15 +891,16 @@ archive_read_data(struct archive *_a, vo len = a->read_data_remaining; if (len > s) len = s; - if (len) + if (len) { memcpy(dest, a->read_data_block, len); - s -= len; - a->read_data_block += len; - a->read_data_remaining -= len; - a->read_data_output_offset += len; - a->read_data_offset += len; - dest += len; - bytes_read += len; + s -= len; + a->read_data_block += len; + a->read_data_remaining -= len; + a->read_data_output_offset += len; + a->read_data_offset += len; + dest += len; + bytes_read += len; + } } } a->read_data_is_posix_read = 0;