Kernels starting with 2.6.27 do not have that particular problem with
popen() because they implement the pipe2() system call, so popen() does
not tickle the missing syscall detection bug.  But the attached source
can be used to reproduce the missing syscall detection bug directly, by
displaying the return value of syscall(6666666).

There are likely to be more and more problems arising from this bug as
new syscalls get implemented.

To reproduce, statically compile this on an Intrepid or Jaunty i386 system:
  gcc -static bad-syscall-test.c -o bad-syscall-test
and then run the resulting binary on an Intrepid or Jaunty amd64 system.

Correct output:
  $ uname -rm
  2.6.24-etchnhalf.1-amd64 x86_64
  $ ./bad-syscall-test
  syscall(6666666) returned -1
  errno is 38 (Function not implemented)
Incorrect output:
  $ uname -rm
  2.6.28-8-generic x86_64
  $ ./bad-syscall-test
  syscall(6666666) returned 6666666
  errno is 0 (Success)


** Attachment added: "bad-syscall-test.c"
   http://launchpadlibrarian.net/23668401/bad-syscall-test.c

-- 
Jaunty i386 popen() misbehaves on x86_64 kernel 2.6.26
https://bugs.launchpad.net/bugs/339743
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to