Fix integer overflow in WebPImage::getHeaderOffset (#962)

Fix integer overflow in WebPImage::getHeaderOffset
v0.27.3
D4N 6 years ago committed by GitHub
commit a51980898b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -827,8 +827,9 @@ namespace Exiv2 {
}
}
long WebPImage::getHeaderOffset(byte *data, long data_size,
byte *header, long header_size) {
long WebPImage::getHeaderOffset(byte* data, long data_size, byte* header, long header_size)
{
if (data_size < header_size) { return -1; }
long pos = -1;
for (long i=0; i < data_size - header_size; i++) {
if (memcmp(header, &data[i], header_size) == 0) {

Binary file not shown.

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from system_tests import CaseMeta, path
class WebPImageGetHeaderOffset(metaclass=CaseMeta):
"""
Regression test for the bug described in:
https://github.com/Exiv2/exiv2/pull/960
"""
url = "https://github.com/Exiv2/exiv2/pull/960"
filename1 = path("$data_path/issue_960.poc.webp")
commands = ["$exiv2 $filename1"]
stdout = [""]
stderr = [
"""Warning: Failed to decode Exif metadata.
Exiv2 exception in print action for file $filename1:
$kerCorruptedMetadata
"""
]
retval = [1]
Loading…
Cancel
Save