X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Flibacess-native.so_src%2Fmain.c;h=7f62545f979c18a492f18cc1ed5368df5d8535c0;hb=feb0895318d823867b858ec841589ca3ab81f510;hp=74d9d3c62d9baa7a62da054e7cb8dd67e08d5ecd;hpb=6218e81f5dc2200f8d202bccd65c0c97da8f751c;p=tpg%2Facess2.git diff --git a/AcessNative/libacess-native.so_src/main.c b/AcessNative/libacess-native.so_src/main.c index 74d9d3c6..7f62545f 100644 --- a/AcessNative/libacess-native.so_src/main.c +++ b/AcessNative/libacess-native.so_src/main.c @@ -59,7 +59,7 @@ int libacessnative_init(int argc, char *argv[], char **envp) path[len] = 0; int fd = acess__SysOpen(path, 6); // WRITE,READ,no EXEC if( fd == -1 ) { - fprintf(stderr, "Unable to preopen '%s'\n", path); + fprintf(stderr, "Unable to preopen '%s' errno=%i\n", path, acess__errno); } if( !splitter ) @@ -77,7 +77,7 @@ int libacessnative_init(int argc, char *argv[], char **envp) int acessnative_spawn(const char *Binary, int SyscallID, const char * const * argv, const char * const * envp) { int envc = 0; - while( envp[envc++] ) + while( envp && envp[envc++] ) envc ++; // Set environment variables for libacess-native @@ -89,7 +89,7 @@ int acessnative_spawn(const char *Binary, int SyscallID, const char * const * ar const char *newenv[envc+2+1]; int i = 0; - for( ; envp[i]; i ++ ) + for( ; envp && envp[i]; i ++ ) { const char *ev = envp[i]; if( strncmp(ev, ENV_VAR_KEY"=", sizeof(ENV_VAR_KEY"=")) == 0 ) { @@ -100,7 +100,7 @@ int acessnative_spawn(const char *Binary, int SyscallID, const char * const * ar } if( !bKeyHit ) newenv[i++] = keystr; - newenv[i++] = "LD_LIBRARY_PATH=Libs/"; // HACK + newenv[i++] = getenv("LD_LIBRARY_PATH") - (sizeof("LD_LIBRARY_PATH=")-1); // VERY hacky newenv[i] = NULL; // TODO: Detect native_spawn failing