summaryrefslogtreecommitdiff
path: root/lib/msan/tests/msan_test.cc
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-10-23 13:57:47 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-10-23 13:57:47 +0000
commit369a9a6d4297af031227db1c6fedd21ee7033dc1 (patch)
tree384e14449fcccaf0f615b5d80763b3a33ed0ea0f /lib/msan/tests/msan_test.cc
parent7d66482b0b25b7d7ff0a28e50cd7dfb796423f53 (diff)
downloadcompiler-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.cc20
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;