diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-10-23 13:57:47 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-10-23 13:57:47 +0000 |
commit | 369a9a6d4297af031227db1c6fedd21ee7033dc1 (patch) | |
tree | 384e14449fcccaf0f615b5d80763b3a33ed0ea0f /lib/msan/tests/msan_test.cc | |
parent | 7d66482b0b25b7d7ff0a28e50cd7dfb796423f53 (diff) | |
download | compiler-rt-369a9a6d4297af031227db1c6fedd21ee7033dc1.tar.gz compiler-rt-369a9a6d4297af031227db1c6fedd21ee7033dc1.tar.bz2 compiler-rt-369a9a6d4297af031227db1c6fedd21ee7033dc1.tar.xz |
[sanitizer] Intercept ether_* functions.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193241 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/tests/msan_test.cc')
-rw-r--r-- | lib/msan/tests/msan_test.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index 0d3fd2a5..fcb5fc81 100644 --- a/lib/msan/tests/msan_test.cc +++ b/lib/msan/tests/msan_test.cc @@ -52,6 +52,7 @@ #include <netdb.h> #include <wordexp.h> #include <mntent.h> +#include <netinet/ether.h> #if defined(__i386__) || defined(__x86_64__) # include <emmintrin.h> @@ -1668,6 +1669,25 @@ TEST(MemorySanitizer, getmntent_r) { fclose(fp); } +TEST(MemorySanitizer, ether) { + const char *asc = "11:22:33:44:55:66"; + struct ether_addr *paddr = ether_aton(asc); + EXPECT_NOT_POISONED(*paddr); + + struct ether_addr addr; + paddr = ether_aton_r(asc, &addr); + ASSERT_EQ(paddr, &addr); + EXPECT_NOT_POISONED(addr); + + char *s = ether_ntoa(&addr); + ASSERT_NE(0, strlen(s)); + + char buf[100]; + s = ether_ntoa_r(&addr, buf); + ASSERT_EQ(s, buf); + ASSERT_NE(0, strlen(buf)); +} + TEST(MemorySanitizer, mmap) { const int size = 4096; void *p1, *p2; |