From 9b543ffeac216189cc8125f7624da9a8cbcbe2e4 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Sat, 4 Oct 2014 15:26:29 -0700 Subject: [PATCH] cdefs.h: add artificial attribute to FORTIFY_SOURCE functions Otherwise the gcc compiler warning doesn't show up. Delete some unittests. These unittests no longer compile cleanly using -Wall -Werror, and rewriting them to compile cleanly isn't feasible. Bug: 17784968 Change-Id: I9bbdc7b6a1c2ac75754f5d0f90782e0dfae66721 --- libc/include/sys/cdefs.h | 2 +- tests/fortify_test.cpp | 27 --------------------------- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h index 5082327dc..400fb9b06 100644 --- a/libc/include/sys/cdefs.h +++ b/libc/include/sys/cdefs.h @@ -534,7 +534,7 @@ #endif #define __bos0(s) __builtin_object_size((s), 0) -#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) +#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__)) #endif #define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1) diff --git a/tests/fortify_test.cpp b/tests/fortify_test.cpp index 352cac694..554a11247 100644 --- a/tests/fortify_test.cpp +++ b/tests/fortify_test.cpp @@ -119,17 +119,6 @@ TEST_F(DEATHTEST, sprintf_fortified2) { } #endif -#ifndef __clang__ -// This test is disabled in clang because clang doesn't properly detect -// this buffer overflow. TODO: Fix clang. -TEST_F(DEATHTEST, sprintf2_fortified2) { - ::testing::FLAGS_gtest_death_test_style = "threadsafe"; - foo myfoo; - ASSERT_EXIT(sprintf(myfoo.a, "0123456789"), - testing::KilledBySignal(SIGABRT), ""); -} -#endif - #ifndef __clang__ // These tests are disabled in clang because clang doesn't properly detect // this buffer overflow. TODO: Fix clang. @@ -527,12 +516,6 @@ TEST_F(DEATHTEST, sprintf_malloc_fortified) { } #endif -TEST_F(DEATHTEST, sprintf2_fortified) { - ::testing::FLAGS_gtest_death_test_style = "threadsafe"; - char buf[5]; - ASSERT_EXIT(sprintf(buf, "aaaaa"), testing::KilledBySignal(SIGABRT), ""); -} - static int vsprintf_helper(const char *fmt, ...) { char buf[10]; va_list va; @@ -699,16 +682,6 @@ TEST_F(DEATHTEST, FD_ISSET_2_fortified) { ASSERT_EXIT(FD_ISSET(0, set), testing::KilledBySignal(SIGABRT), ""); } -// gtest's ASSERT_EXIT needs a valid expression, but glibc has a do-while macro. -static void FD_ZERO_function(fd_set* s) { FD_ZERO(s); } - -TEST_F(DEATHTEST, FD_ZERO_fortified) { - ::testing::FLAGS_gtest_death_test_style = "threadsafe"; - char buf[1]; - fd_set* set = (fd_set*) buf; - ASSERT_EXIT(FD_ZERO_function(set), testing::KilledBySignal(SIGABRT), ""); -} - TEST_F(DEATHTEST, read_fortified) { ::testing::FLAGS_gtest_death_test_style = "threadsafe"; char buf[1];