1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 21:47:46 +00:00

LibArchive: Make get_field_as_integral error out on non-octal input

Fixes this bug that was reported by OSS-Fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52493
This commit is contained in:
implicitfield 2022-11-11 18:31:45 +02:00 committed by Andrew Kaster
parent c88d8a21cc
commit 58e9262ff1
4 changed files with 54 additions and 19 deletions

View file

@ -75,8 +75,13 @@ inline ErrorOr<void> TarInputStream::for_each_extended_header(F func)
Archive::TarFileStream file_stream = file_contents();
ByteBuffer file_contents_buffer = TRY(ByteBuffer::create_zeroed(header().size()));
VERIFY(file_stream.read(file_contents_buffer) == header().size());
auto header_size_or_error = header().size();
if (header_size_or_error.is_error())
return header_size_or_error.release_error();
auto header_size = header_size_or_error.release_value();
ByteBuffer file_contents_buffer = TRY(ByteBuffer::create_zeroed(header_size));
VERIFY(file_stream.read(file_contents_buffer) == header_size);
StringView file_contents { file_contents_buffer };