platform_system_core/base/include/android-base
Elliott Hughes fba2a1a1ec Fix SEGV in libziparchive with malformed zip file.
d77c99ebc3 changed MappedFile to return a
bogus zero-length mapping on failure rather than nullptr. None of the
calling code was changed, though, and it seems like doing so would be a
bad idea. Revert that part of the change.

Add missing tests, and tidy up some of the logging. Also remove
single-use or obfuscatory constants from the tests.

The new "empty.zip" was created by using zip(1) to create a zip file
with one entry, then using `zip -d` to remove it.

The new "zero-size-cd.zip" was created by using zip(1) to create a zip
file containing a single empty file, and then hex editing the two byte
"size of the central directory" field in the "end of central directory
record" structure at the end of the file. (This is equivalent to, but
much smaller than, the example zip file provided by the bug reporter.)

Bug: http://b/145925341
Test: treehugger
Change-Id: Iff64673bce7dae886ccbc9dd6c2bbe18de19f9d2
2019-12-17 08:39:09 -08:00
..
chrono_utils.h libbase: switch to #pragma once. 2018-06-26 17:17:41 -07:00
cmsg.h Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
collections.h base: add helpers for sending/receiving file descriptors. 2019-02-13 13:21:54 -08:00
endian.h <android-base/endian.h>: fix interoperability issue 2019-09-18 13:06:45 +08:00
errors.h libbase: switch to #pragma once. 2018-06-26 17:17:41 -07:00
expected.h Add noexcept to missing places in expected.h 2019-07-09 17:06:08 -07:00
file.h Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
format.h Include chrono.h 2019-08-27 20:38:14 +00:00
logging.h Fix a few clang-tidy issues and add NOLINT for others 2019-07-09 16:17:36 +00:00
macros.h libbase: remove ARRAYSIZE_UNSAFE. 2018-10-24 14:34:52 -07:00
mapped_file.h Fix SEGV in libziparchive with malformed zip file. 2019-12-17 08:39:09 -08:00
memory.h libbase: switch to #pragma once. 2018-06-26 17:17:41 -07:00
no_destructor.h base: steal Chromium's NoDestructor. 2019-12-06 13:23:05 -08:00
off64_t.h libbase: a slightly cleaner solution to libbase's `off64_t` problem. 2018-10-25 16:29:02 -07:00
parsebool.h Expose ParseBool from libbase 2019-11-19 13:31:50 -08:00
parsedouble.h ParseFloat/ParseDouble, also take std::string 2018-08-09 10:49:45 -07:00
parseint.h Assert that ParseInt/ParseUint are only used with signed/unsigned numbers respectively 2018-10-05 14:30:39 -07:00
parsenetaddress.h libbase: switch to #pragma once. 2018-06-26 17:17:41 -07:00
process.h Add android::base::GetPids() function to return all pids 2019-07-01 13:55:46 -07:00
properties.h base: fix out of date documentation with PropertySet() 2019-06-05 10:31:33 -07:00
result.h Create android-base/format.h that includes fmtlib headers 2019-06-14 14:55:27 -07:00
scopeguard.h Add noexcept to move constructors and assignment operators. 2018-10-05 16:43:47 +00:00
stringprintf.h libbase: switch to #pragma once. 2018-06-26 17:17:41 -07:00
strings.h Add absl-like StringReplace. 2019-11-18 16:02:31 -08:00
test_utils.h base: avoid evaluating macro argument multiple times. 2019-12-12 14:25:45 -08:00
thread_annotations.h base: add ScopedLockAssertion. 2019-02-12 16:32:35 -08:00
threads.h Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
unique_fd.h Improve codegen slightly when doing FD validity checks 2019-09-04 13:46:50 -07:00
utf8.h Add sys/types.h in utf8.h 2018-09-21 10:46:35 -07:00