diff options
author | Christopher Ferris <cferris@google.com> | 2022-04-13 00:35:26 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-04-13 00:35:26 +0000 |
commit | 87cdc95f5dbb148ffe8d41dbebfda5f2460101fe (patch) | |
tree | 06954b7cc78e18d94b6c63147ad20eb6181adf63 | |
parent | b9032bf46e846cb53e3f0d53f67e4e031900d5cb (diff) | |
parent | 8cfc318a874cc0d263a55c32b4b32a2a35be7177 (diff) | |
download | bionic-87cdc95f5dbb148ffe8d41dbebfda5f2460101fe.tar.gz |
Merge "In android_set_abort_message, check for nullptr." am: 8cfc318a87
Original change: https://android-review.googlesource.com/c/platform/bionic/+/2061588
Change-Id: I6a0935cccad1af6298b1c48a63f866370591dfcf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libc/bionic/android_set_abort_message.cpp | 4 | ||||
-rw-r--r-- | tests/Android.bp | 1 | ||||
-rw-r--r-- | tests/NOTICE | 28 | ||||
-rw-r--r-- | tests/android_set_abort_message_test.cpp | 43 |
4 files changed, 76 insertions, 0 deletions
diff --git a/libc/bionic/android_set_abort_message.cpp b/libc/bionic/android_set_abort_message.cpp index 2ea12ee54..d5f8cb97f 100644 --- a/libc/bionic/android_set_abort_message.cpp +++ b/libc/bionic/android_set_abort_message.cpp @@ -77,6 +77,10 @@ void android_set_abort_message(const char* msg) { return; } + if (msg == nullptr) { + msg = "(null)"; + } + size_t size = sizeof(magic_abort_msg_t) + strlen(msg) + 1; void* map = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); if (map == MAP_FAILED) { diff --git a/tests/Android.bp b/tests/Android.bp index 48149c7aa..2ea6087c3 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -343,6 +343,7 @@ cc_test_library { "__cxa_demangle_test.cpp", "alloca_test.cpp", "android_get_device_api_level.cpp", + "android_set_abort_message_test.cpp", "arpa_inet_test.cpp", "async_safe_test.cpp", "assert_test.cpp", diff --git a/tests/NOTICE b/tests/NOTICE index c9b65d07b..8c3483c3b 100644 --- a/tests/NOTICE +++ b/tests/NOTICE @@ -382,3 +382,31 @@ SUCH DAMAGE. ------------------------------------------------------------------- +Copyright (C) 2022 The Android Open Source Project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +------------------------------------------------------------------- + diff --git a/tests/android_set_abort_message_test.cpp b/tests/android_set_abort_message_test.cpp new file mode 100644 index 000000000..d6553dedd --- /dev/null +++ b/tests/android_set_abort_message_test.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> + +#include <gtest/gtest.h> + +#if defined(__BIONIC__) +extern "C" void android_set_abort_message(const char* msg); +#endif + +TEST(android_set_abort_message_test, nullptr_check) { +#if defined(__BIONIC__) + android_set_abort_message(nullptr); +#else + GTEST_SKIP() << "This test is only supported on bionic."; +#endif +} |