X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fbinary.c;h=f618673900668ad54c7e74e2003ab9817457f0b3;hb=ea487239a8b3632d13c6e4ec92d21f0fcd460bdd;hp=de94c6f69055631b6f225df2ff7cc62f080d1457;hpb=bd5e8623e509a443d7d6e1b959b79f85b0c285b7;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/binary.c b/KernelLand/Kernel/binary.c index de94c6f6..f6186739 100644 --- a/KernelLand/Kernel/binary.c +++ b/KernelLand/Kernel/binary.c @@ -194,9 +194,10 @@ int Proc_SysSpawn(const char *Binary, const char **ArgV, const char **EnvP, int Proc_Execve(Binary, ArgV, EnvP, size); for(;;); } - if( ret < 0 ) + if( ret == -1 ) { VFS_FreeSavedHandles(nFD, handles); + free(cachebuf); } return ret; @@ -249,7 +250,7 @@ int Proc_Execve(const char *File, const char **ArgV, const char **EnvP, int Data base = Binary_Load(File, &entry); if(base == 0) { - Log_Warning("Binary", "Proc_Execve - Unable to load '%s'", File); + Log_Warning("Binary", "Proc_Execve - Unable to load '%s' [errno=%i]", File, errno); LEAVE('-'); Threads_Exit(0, -10); for(;;); @@ -822,9 +823,12 @@ Uint Binary_GetSymbolEx(const char *Name, Uint *Value) tKernelBin *pKBin; int numKSyms = ((Uint)&gKernelSymbolsEnd-(Uint)&gKernelSymbols)/sizeof(tKernelSymbol); + LOG("numKSyms = %i", numKSyms); + // Scan Kernel for( i = 0; i < numKSyms; i++ ) { + LOG("KSym %s = %p", gKernelSymbols[i].Name, gKernelSymbols[i].Value); if(strcmp(Name, gKernelSymbols[i].Name) == 0) { *Value = gKernelSymbols[i].Value; return 1;