I've worked during this weekend to diagnose the problem I reported earlier, in
the thread " Please test 2.6.13-rc2 in TT mode! Big problem with syscall
It can affect an application when these conditions are verified:
*) the host is running a 2.6 kernel with SKAS patch and is compiled with
*) it is calling sys_mmap2, old_mmap, sys_mprotect or sys_modify_ldt
*) the call happens via int 0x80
*) on return, the application relies on the values stored in registers
(actually on some specific registers, depending on the exact situation).
Condition 3 means that a dynamically linked app with NPTL glibc won't incur in
this problem, nor will statically linked app compiled on NPTL-only distros.
I've tested 2.6.9-V7, 2.6.11-V8/-V9-pre4 and 2.6.12-V8/-V9-pre4, all with
CONFIG_REGPARM enabled, and compiled with gcc 3.3.4, and they all show this
bug. Analysis with CONFIG_REGPARM disabled show that the problem won't happen.
Probably gcc 3.4 triggers it as well; the buggy code is present
unchanged even in SKAS3-V1 against 2.6.3, although maybe it wouldn't be
triggered by such an old kernel (because CONFIG_REGPARM wasn't present IIRC).
The solution, for user, is to upgrade to SKAS3-V8.2, or to SKAS3-v9-pre7
(which is still to consider as *experimental*).
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB
Get latest updates about Open Source Projects, Conferences and News.