@@ -32,8 +32,14 @@ int main(int argc, char **argv) {
32
32
munmap (p , map_size );
33
33
size_t after_munmap = get_rss_kb ();
34
34
35
- fprintf (stderr , "RSS at start: %td, after mmap: %td, after mumap: %td\n" ,
36
- before , after_mmap , after_munmap );
35
+ p = mmap (NULL , map_size , PROT_READ | PROT_WRITE ,
36
+ MAP_PRIVATE | MAP_ANONYMOUS , -1 , 0 );
37
+ dfsan_set_label (label , & val , sizeof (val ));
38
+ memset (p , val , map_size );
39
+ size_t after_mmap2 = get_rss_kb ();
40
+
41
+ fprintf (stderr , "RSS at start: %td, after mmap: %td, after mumap: %td, after mmap2: %td\n" ,
42
+ before , after_mmap , after_munmap , after_mmap2 );
37
43
38
44
// The memory after mmap increases 3 times of map_size because the overhead of
39
45
// shadow memory is 2x.
@@ -42,6 +48,7 @@ int main(int argc, char **argv) {
42
48
// OS does not release memory to the same level as the start of the program.
43
49
// The assert checks the memory after munmap up to a delta.
44
50
const size_t delta = 50000 ;
45
- assert (after_munmap + delta <= after_mmap );
51
+ assert (after_mmap2 <= after_mmap + delta );
52
+
46
53
return 0 ;
47
54
}
0 commit comments