X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Flibacess-native.so_src%2Fmain.c;h=b5f066f70809e5bc4868aec4c2affc7413b8e7bc;hb=6fbf6b93bec9b8b5bd6d7c683eefb0ebed8dff77;hp=d1e868474dfb8ec10f45f06aeae736682fe763dd;hpb=372f6414f56b17c0e9a4306f8e77355c59814f9c;p=tpg%2Facess2.git diff --git a/AcessNative/libacess-native.so_src/main.c b/AcessNative/libacess-native.so_src/main.c index d1e86847..b5f066f7 100644 --- a/AcessNative/libacess-native.so_src/main.c +++ b/AcessNative/libacess-native.so_src/main.c @@ -48,6 +48,7 @@ int libacessnative_init(int argc, char *argv[], char **envp) printf("preopens = %s\n", preopens); if( preopens ) { + int exp_fd = 0; while( *preopens ) { const char *splitter = strchr(preopens, ':'); @@ -64,7 +65,15 @@ int libacessnative_init(int argc, char *argv[], char **envp) int fd = acess__SysOpen(path, 6); // WRITE,READ,no EXEC if( fd == -1 ) { fprintf(stderr, "Unable to preopen '%s' errno=%i\n", path, acess__errno); + exit(1); } + if( fd != exp_fd ) { + // Oh... this is bad + fprintf(stderr, "Pre-opening '%s' resulted in an incorrect FD (expected %i, got %i)", + path, exp_fd, fd); + exit(1); + } + exp_fd += 1; if( !splitter ) break; @@ -131,17 +140,3 @@ void Warning(const char *format, ...) printf("\n"); } -void __libc_csu_fini() -{ -} - -void __libc_csu_init() -{ -} - -void __stack_chk_fail(void) -{ - fprintf(stderr, "__stack_chk_fail"); - exit(1); -} -