[MSan] Fix minor issues in testcases (#144073)
Previously, 1. ifaddrs.cpp : mistake `size_t (xxx)` as `sizeof (xxx)`, resulting in inadequate checks. 2. qsort.cpp : mistake `kSize2` as `kSize1`, resulting in an unexpected buffer overlow issue.
This commit is contained in:
@@ -16,10 +16,10 @@
|
||||
|
||||
#include <sanitizer/msan_interface.h>
|
||||
|
||||
#define CHECK_AND_PUSH(addr, size) \
|
||||
if (addr) { \
|
||||
assert(-1 == __msan_test_shadow(addr, sizeof(size))); \
|
||||
ranges.push_back(std::make_pair((void *)addr, (size_t)size)); \
|
||||
#define CHECK_AND_PUSH(addr, size) \
|
||||
if (addr) { \
|
||||
assert(-1 == __msan_test_shadow(addr, (size_t)(size))); \
|
||||
ranges.push_back(std::make_pair((void *)addr, (size_t)size)); \
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@@ -35,7 +35,7 @@ int main(int argc, char *argv[]) {
|
||||
assert(res == 0);
|
||||
assert(-1 == __msan_test_shadow(&ifas, sizeof(ifaddrs *)));
|
||||
|
||||
std::vector<std::pair<void *, size_t> > ranges;
|
||||
std::vector<std::pair<void *, size_t>> ranges;
|
||||
ifaddrs *p = ifas;
|
||||
while (p) {
|
||||
CHECK_AND_PUSH(p, sizeof(ifaddrs));
|
||||
|
||||
@@ -52,7 +52,7 @@ int compar1(const void *a, const void *b) {
|
||||
// kind of random
|
||||
for (int i = 0; i < kSize2; ++i)
|
||||
p[i] = i * 2 + (i % 3 - 1) * 3;
|
||||
qsort(p, kSize1, sizeof(long), compar2);
|
||||
qsort(p, kSize2, sizeof(long), compar2);
|
||||
__msan_check_mem_is_initialized(p, sizeof(long) * kSize2);
|
||||
delete[] p;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user