summaryrefslogtreecommitdiff
path: root/libarchive/archive_read.c
diff options
context:
space:
mode:
authorKamil Rytarowski <n54@gmx.com>2020-02-24 22:58:00 +0100
committerMartin Matuska <martin@matuska.org>2020-02-25 02:52:16 +0100
commitec5b86b48e99c5501374b01606f1ccdae6a8a93e (patch)
tree63ef1988730fe7fa37c17420fc3b644480b561b6 /libarchive/archive_read.c
parent957c0fff55587debe8a2981ac726cc7c7e3324e5 (diff)
downloadlibarchive-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.c17
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;