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 | 3e6064f9d20fc413a9c9099dd818c8842c4d6911 (patch) | |
| tree | 7dbcb6df4b80e577f55391fbc5d2370d4f3b1bf9 /compiler-rt/lib/msan | |
| parent | be8681b4612f4a85ce2c1c14231122ad922268e1 (diff) | |
| download | bcm5719-llvm-3e6064f9d20fc413a9c9099dd818c8842c4d6911.tar.gz bcm5719-llvm-3e6064f9d20fc413a9c9099dd818c8842c4d6911.zip | |
[sanitizer] Intercept ether_* functions.
llvm-svn: 193241
Diffstat (limited to 'compiler-rt/lib/msan')
| -rw-r--r-- | compiler-rt/lib/msan/tests/msan_test.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/tests/msan_test.cc b/compiler-rt/lib/msan/tests/msan_test.cc index 0d3fd2a5ecd..fcb5fc81ac9 100644 --- a/compiler-rt/lib/msan/tests/msan_test.cc +++ b/compiler-rt/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; |

