feat: add streq
This commit is contained in:
1 parent
8962d40688
commit
412e4fd9a1
4 files changed
+182
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#include "ulib.h"
|
||||
|
||||
/*
|
||||
* Spawned by mmaptest.c to prove that a real write against a PROT_READ-only
|
||||
* mapping turns into a genuine SIGSEGV (isr.c's #PF handler) rather than a
|
||||
* kernel-wide panic -- this process is expected to die, not return 0. Its
|
||||
* own final "FAIL" print/return only runs if that protection was somehow
|
||||
* NOT enforced.
|
||||
*/
|
||||
|
||||
int main(void)
|
||||
{
|
||||
print("mmapprotvictim: start\n");
|
||||
|
||||
int fd = userOpen("/etc/motd.txt", oReadOnly);
|
||||
if (fd < 0) {
|
||||
print("mmapprotvictim: FAIL open\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
void* addr = userMmap(0, 4096, mmapProtRead, 0, fd, 0);
|
||||
if (addr == userMmapFailed) {
|
||||
print("mmapprotvictim: FAIL mmap\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
volatile char* p = (volatile char*)addr;
|
||||
if (p[0] != 'f') {
|
||||
print("mmapprotvictim: FAIL unexpected read content\n");
|
||||
return 1;
|
||||
}
|
||||
print("mmapprotvictim: read-ok\n");
|
||||
|
||||
/* PROT_READ only -- this write must be refused by mmapFaultHandler and
|
||||
turn into a real SIGSEGV delivered against THIS process alone. */
|
||||
p[0] = 'X';
|
||||
|
||||
print("mmapprotvictim: FAIL write should have segfaulted\n");
|
||||
return 1;
|
||||
}
|
||||
Reference in new issue
Block a user