X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Flibacess-native.so_src%2Fexports.c;h=70c7d774e7b96cbb5198eb86ac5319a12f4d22c0;hb=dc04356bb5d99378c2d2d5f12e66419a77e22bcf;hp=0ab63613480da0b2962cc921b6699294b5f0337f;hpb=27cb4fff4ed854d8be598a1157265c6de8aa035a;p=tpg%2Facess2.git diff --git a/AcessNative/libacess-native.so_src/exports.c b/AcessNative/libacess-native.so_src/exports.c index 0ab63613..70c7d774 100644 --- a/AcessNative/libacess-native.so_src/exports.c +++ b/AcessNative/libacess-native.so_src/exports.c @@ -1,4 +1,5 @@ +#define acess__SysSpawn _disabled_acess__SysSpawn #include "../ld-acess_src/exports.c" void *_crt0_exit_handler; @@ -8,4 +9,35 @@ int *libc_geterrno(void) return &acess__errno; } +#undef acess__SysSpawn + +int acess__SysSpawn(const char *binary, const char **argv, const char **envp, int nfd, int fds[], struct s_sys_spawninfo *info) +{ + int argc = 0; + while( argv[argc++] ); + + Debug("_SysSpawn('%s', %p (%i), %p, %i, %p, %p)", + binary, argv, argc, envp, nfd, fds, info); + + int kernel_tid; + int newID; + newID = _Syscall(SYS_AN_SPAWN, "d >d", sizeof(int), &kernel_tid, + nfd*sizeof(int), fds, + info ? sizeof(*info) : 0, info); + + + Warning("TODO: Spawn '%s'", binary); + // TODO: Translate internal path to actual path + + // TODO: set environment variables for libacess-native + // > ACESSNATIVE_KEY=`newID` + //native_spawn(binary, argv, envp); + + return 0; +} + +void ldacess_DumpLoadedLibraries(void) +{ + Debug("ldacess_DumpLoadedLibraries"); +}