diff --git a/loader/ext.c b/loader/ext.c index 0b747b7f0c..eb56db1478 100644 --- a/loader/ext.c +++ b/loader/ext.c @@ -250,7 +250,7 @@ LPVOID FILE_dommap( int unix_handle, LPVOID start, { if ((fdzero = open( "/dev/zero", O_RDONLY )) == -1) { - perror( "/dev/zero: open" ); + perror( "Cannot open /dev/zero for READ. Check permissions! error: " ); exit(1); } } @@ -366,8 +366,10 @@ HANDLE WINAPI CreateFileMappingA(HANDLE handle, LPSECURITY_ATTRIBUTES lpAttr, { anon=1; hFile=open("/dev/zero", O_RDWR); - if(hFile<0) + if(hFile<0){ + perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: " ); return 0; + } } if(!anon) { @@ -455,6 +457,10 @@ LPVOID WINAPI VirtualAlloc(LPVOID address, DWORD size, DWORD type, DWORD protec { void* answer; int fd=open("/dev/zero", O_RDWR); + if(fd<0){ + perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: " ); + return NULL; + } size=(size+0xffff)&(~0xffff); //printf("VirtualAlloc(0x%08X, %d)\n", address, size); if(address!=0) diff --git a/loader/ldt_keeper.c b/loader/ldt_keeper.c index 5641ceaf5c..6e3ece8d25 100644 --- a/loader/ldt_keeper.c +++ b/loader/ldt_keeper.c @@ -157,6 +157,10 @@ void Setup_LDT_Keeper(void) prev_struct = 0; fd = open("/dev/zero", O_RDWR); + if(fd<0){ + perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: " ); + return; + } fs_seg = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); if(fs_seg==(void*)-1)