[RndTbl] weird a.out in /var/log/httpd

Gilles Detillieux grdetil at scrc.umanitoba.ca
Thu Jan 8 11:56:55 CST 2015


On 05/01/2015 11:23 PM, Trevor Cordes wrote:
> On 2015-01-05 Sean Walberg wrote:
>> Don't run ldd on a binary you don't trust [1]. I think the safer way
> Oops.  Oh well, it didn't seem to do anything, and I was running it as
> a bogus severely limited user.
>
> I really don't understand the error/output when I run the a.out though.
> Since my description was lacking, here's the exact output I get:
>
> % strace ./a.out
> execve("./a.out", ["./a.out"], [/* 34 vars */]) = -1 ENOENT (No such file or directory)
> write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
> ) = 40
> exit_group(1)                           = ?
> +++ exited with 1 +++
>
> Who's telling me ENOENT?  The shell?  Kernel?  a.out?  I don't get it
> at all... very confused.
>
> Could this happen with a messed up / incomplete a.out?

Well, execve is a system call, as shown by strace, so the ENOENT error 
most likely would come from the kernel.  A "man execve" lists the 
reasons for various error codes, and it seems in this case, a missing 
shared library is the most likely candidate.

>> is objdump -p a.out | grep NEEDED.
>    NEEDED               libnssutil3.so

If that library is not in the usual /lib or /usr/lib, or somewhere in 
the LD_LIBRARY_PATH, then that's probably the problem. Otherwise, I 
don't know what the problem might be.  The executable file obviously 
exists, and it doesn't seem it would need an interpreter, so it must be 
a shared library that it needs and the kernel can't find.

-- 
Gilles R. Detillieux              E-mail: <grdetil at scrc.umanitoba.ca>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/
Dept. of Physiology and Pathophysiology, Faculty of Health Sciences,
Univ. of Manitoba  Winnipeg, MB  R3E 0J9  (Canada)



More information about the Roundtable mailing list