diff options
author | Kamil Rytarowski <n54@gmx.com> | 2020-02-24 22:58:00 +0100 |
---|---|---|
committer | Martin Matuska <martin@matuska.org> | 2020-02-25 02:52:16 +0100 |
commit | ec5b86b48e99c5501374b01606f1ccdae6a8a93e (patch) | |
tree | 63ef1988730fe7fa37c17420fc3b644480b561b6 /libarchive/archive_read.c | |
parent | 957c0fff55587debe8a2981ac726cc7c7e3324e5 (diff) | |
download | libarchive-ec5b86b48e99c5501374b01606f1ccdae6a8a93e.tar.gz |
archive_read.c: silence UBSan warning about undefined behavior
Fixes #1335
Diffstat (limited to 'libarchive/archive_read.c')
-rw-r--r-- | libarchive/archive_read.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c index 4a933b2f..c59f0515 100644 --- a/libarchive/archive_read.c +++ b/libarchive/archive_read.c @@ -892,15 +892,16 @@ archive_read_data(struct archive *_a, void *buff, size_t s) 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; |