AcessNative - Add userland build to makefile
[tpg/acess2.git] / AcessNative / libacess-native.so_src / main.c
index 74d9d3c..d1e8684 100644 (file)
@@ -10,6 +10,8 @@
 #include <stdint.h>
 #include "../ld-acess_src/exports.h"
 
+extern int     gbSyscallDebugEnabled;
+
 #ifdef __WINDOWS__
 int DllMain(void)
 {
@@ -40,6 +42,8 @@ int libacessnative_init(int argc, char *argv[], char **envp)
 {
        Request_Preinit();
        
+       //gbSyscallDebugEnabled = 1;
+       
        const char *preopens = getenv_p(envp, ENV_VAR_PREOPENS);
        printf("preopens = %s\n", preopens);
        if( preopens )
@@ -59,7 +63,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 +81,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 +93,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 +104,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

UCC git Repository :: git.ucc.asn.au