/* Tries to map a zero-length file, which may or may not work but
should not terminate the process or crash.
Then dereferences the address that we tried to map,
and the process must be terminated with -1 exit code. */
#include
#include tests/lib.h
#include tests/main.h
void
test_main (void)
{
char *data = (char *) 0x7f000000;
int handle;
CHECK (create (empty, 0), create empty file empty);
CHECK ((handle = open (empty)) > 1, open empty);
/* Calling mmap() might succeed or fail.We dont care. */
msg (mmap empty);
mmap (handle, data);
/* Regardless of whether the call worked, *data should cause
the process to be terminated. */
fail (unmapped memory is readable (%d), *data);
}
Reviews
There are no reviews yet.