Index: lib/msan/tests/msan_test.cc =================================================================== --- lib/msan/tests/msan_test.cc +++ lib/msan/tests/msan_test.cc @@ -1214,17 +1214,23 @@ } TEST(MemorySanitizer, shmat) { - void *p = mmap(NULL, 4096, PROT_READ | PROT_WRITE, + const int kShmSize = 4096; + void *p = mmap(NULL, kShmSize + SHMLBA, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); ASSERT_NE(MAP_FAILED, p); + if ((unsigned long)p % SHMLBA != 0) { + *(unsigned long*)&p = ((unsigned long)p + SHMLBA - 1) / SHMLBA * SHMLBA; + } + // p is now SHMLBA-aligned; + ((char *)p)[10] = *GetPoisoned(); ((char *)p)[4095] = *GetPoisoned(); - int res = munmap(p, 4096); + int res = munmap(p, kShmSize); ASSERT_EQ(0, res); - int id = shmget(IPC_PRIVATE, 4096, 0644 | IPC_CREAT); + int id = shmget(IPC_PRIVATE, kShmSize, 0644 | IPC_CREAT); ASSERT_GT(id, -1); void *q = shmat(id, p, 0);