Edd Barrett wrote:
Hi,

> Maybe your path is not set correctly (for this specific problem).

Today has been one dumb mistake after another. I apologize.

I'll do it properly shall I:

# sysctl -a | grep linux
kern.emul.linux=1
# ls -al a.out
-rwxr-xr-x  1 edd  edd  1176578 May 28 13:18 a.out
# file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1, for
GNU/Linux 2.6.9, statically linked, not stripped
# uname -a
OpenBSD puff.langash.lan 4.1 GENERIC#1435 i386
# ktrace ./a.out
ktrace: exec of './a.out' failed: Operation not permitted
# kdump -f ktrace.out
 8108 ktrace   RET   ktrace 0
 8108 ktrace   CALL  execve(0xcfbdc9d3,0xcfbdc89c,0xcfbdc8a4)
 8108 ktrace   NAMI  "./a.out"
 8108 ktrace   RET   execve -1 errno 1 Operation not permitted
 8108 ktrace   CALL  mprotect(0x7e522000,0x1000,0x3)
 8108 ktrace   RET   mprotect 0
 8108 ktrace   CALL  mprotect(0x7e522000,0x1000,0x1)
 8108 ktrace   RET   mprotect 0
 8108 ktrace   CALL  write(0x2,0xcfbdbeb0,0x8)
 8108 ktrace   GIO   fd 2 wrote 8 bytes
      "ktrace: "
 8108 ktrace   RET   write 8
 8108 ktrace   CALL  write(0x2,0xcfbdbed0,0x18)
 8108 ktrace   GIO   fd 2 wrote 24 bytes
      "exec of './a.out' failed"
 8108 ktrace   RET   write 24/0x18
 8108 ktrace   CALL  write(0x2,0x3c00213c,0x2)
 8108 ktrace   GIO   fd 2 wrote 2 bytes
      ": "
 8108 ktrace   RET   write 2
 8108 ktrace   CALL  issetugid()
 8108 ktrace   RET   issetugid 0
 8108 ktrace   CALL  open(0xcfbdc280,0,0)
 8108 ktrace   NAMI  "/usr/share/nls/C/libc.cat"
 8108 ktrace   RET   open 3
 8108 ktrace   CALL  fstat(0x3,0xcfbdc1e0)
 8108 ktrace   RET   fstat 0
 8108 ktrace   CALL  mmap(0,0xe5a,0x1,0x1,0x3,0,0,0)
 8108 ktrace   RET   mmap -2046947328/0x85fe1000
 8108 ktrace   CALL  close(0x3)
 8108 ktrace   RET   close 0
 8108 ktrace   CALL  readlink(0x3c002168,0xcfbdc120,0x3f)
 8108 ktrace   NAMI  "/etc/malloc.conf"
 8108 ktrace   RET   readlink -1 errno 2 No such file or directory
 8108 ktrace   CALL  issetugid()
 8108 ktrace   RET   issetugid 0
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap 2086334464/0x7c5af000
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap -2141827072/0x80565000
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap 2143391744/0x7fc19000
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap -1960751104/0x8b215000
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap -1952120832/0x8ba50000
 8108 ktrace   CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
 8108 ktrace   RET   mmap -1965772800/0x8ad4b000
 8108 ktrace   CALL  munmap(0x85fe1000,0xe5a)
 8108 ktrace   RET   munmap 0
 8108 ktrace   CALL  __sysctl(1.37,0xcfbdc540,0xcfbdc534,0,0)
 8108 ktrace   RET   __sysctl 0
 8108 ktrace   CALL  getpid()
 8108 ktrace   RET   getpid 8108/0x1fac
 8108 ktrace   CALL  write(0x2,0xcfbdbeb0,0x18)
 8108 ktrace   GIO   fd 2 wrote 24 bytes
      "Operation not permitted
      "
 8108 ktrace   RET   write 24/0x18
 8108 ktrace   CALL  munmap(0x7e522000,0x1000)
 8108 ktrace   RET   munmap 0
 8108 ktrace   CALL  exit(0x1)

The above was run as root.

I iterate again, this binary was cross compiled with g++, and has
proven to work when copied onto an linux i386 machine. This was all
done by my friend who uses linux. He tells me he used the -m32 switch
of g++ to do so.

I hope this is all the information this time.

Try showing us a "pwd"
and a "mount"

and perhaps "cat /etc/fstab"

I'm suspecting a noexec filesystem or some such thing.

Cheers,
Steve

Reply via email to