From: Nick Kralevich Date: Thu, 30 May 2013 20:21:14 +0000 (-0700) Subject: Add strncpy FORTIFY_SOURCE tests. X-Git-Tag: android-x86-4.4-r1~19^2~103^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8cc145edf42ff8f0c10d5f2fd82ec99c6752e5ab;p=android-x86%2Fbionic.git Add strncpy FORTIFY_SOURCE tests. Change-Id: Id108b1d72b44d7e5fb911268e80bbdf896808f60 --- diff --git a/tests/fortify1_test.cpp b/tests/fortify1_test.cpp index e23719309..70d458a08 100644 --- a/tests/fortify1_test.cpp +++ b/tests/fortify1_test.cpp @@ -60,3 +60,19 @@ TEST(Fortify1_DeathTest, sprintf_fortified) { memcpy(source_buf, "12345678901234", 15); ASSERT_EXIT(sprintf(buf, "%s", source_buf), testing::KilledBySignal(SIGSEGV), ""); } + +TEST(Fortify1_DeathTest, strncat_fortified) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + char buf[10]; + size_t n = atoi("10"); // avoid compiler optimizations + strncpy(buf, "012345678", n); + ASSERT_EXIT(strncat(buf, "9", n), testing::KilledBySignal(SIGSEGV), ""); +} + +TEST(Fortify1_DeathTest, strncat2_fortified) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + char buf[10]; + buf[0] = '\0'; + size_t n = atoi("10"); // avoid compiler optimizations + ASSERT_EXIT(strncat(buf, "0123456789", n), testing::KilledBySignal(SIGSEGV), ""); +} diff --git a/tests/fortify2_test.cpp b/tests/fortify2_test.cpp index ea890fe96..c937e91e7 100644 --- a/tests/fortify2_test.cpp +++ b/tests/fortify2_test.cpp @@ -64,6 +64,22 @@ TEST(Fortify2_DeathTest, strrchr_fortified2) { } #endif +TEST(Fortify2_DeathTest, strncat_fortified2) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + foo myfoo; + size_t n = atoi("10"); // avoid compiler optimizations + strncpy(myfoo.a, "012345678", n); + ASSERT_EXIT(strncat(myfoo.a, "9", n), testing::KilledBySignal(SIGSEGV), ""); +} + +TEST(Fortify2_DeathTest, strncat2_fortified2) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + foo myfoo; + myfoo.a[0] = '\0'; + size_t n = atoi("10"); // avoid compiler optimizations + ASSERT_EXIT(strncat(myfoo.a, "0123456789", n), testing::KilledBySignal(SIGSEGV), ""); +} + /***********************************************************/ /* TESTS BELOW HERE DUPLICATE TESTS FROM fortify1_test.cpp */ /***********************************************************/ @@ -106,3 +122,19 @@ TEST(Fortify2_DeathTest, sprintf_fortified) { memcpy(source_buf, "12345678901234", 15); ASSERT_EXIT(sprintf(buf, "%s", source_buf), testing::KilledBySignal(SIGSEGV), ""); } + +TEST(Fortify2_DeathTest, strncat_fortified) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + char buf[10]; + size_t n = atoi("10"); // avoid compiler optimizations + strncpy(buf, "012345678", n); + ASSERT_EXIT(strncat(buf, "9", n), testing::KilledBySignal(SIGSEGV), ""); +} + +TEST(Fortify2_DeathTest, strncat2_fortified) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + char buf[10]; + buf[0] = '\0'; + size_t n = atoi("10"); // avoid compiler optimizations + ASSERT_EXIT(strncat(buf, "0123456789", n), testing::KilledBySignal(SIGSEGV), ""); +}