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 <[email protected]>
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;