GPE in proc_lookupfd with ver2 of linux-stack-nonexec patch

Tomasz Motylewski (motyl@pdi.net)
Mon, 22 Sep 1997 14:17:38 +0200 (MET DST)


I am getting the GPE with aprox 10% probability when executing the
following command from cron:

*/10 * * * * if /usr/bin/fuser -s /tmp/.pop/* 2>/dev/null ; then :; else /bin/rm -rf /tmp/.pop/* 2>/dev/null ; fi

Sep 22 07:30:02 uran kernel: general protection: 0000
Sep 22 07:30:02 uran kernel: CPU: 0
Sep 22 07:30:02 uran kernel: EIP: 0010:[proc_lookupfd+360/436]
Sep 22 07:30:02 uran kernel: EFLAGS: 00010286
Sep 22 07:30:02 uran kernel: eax: f000ef6f ebx: ffffffff ecx: 00000002 edx: 01864414
Sep 22 07:30:02 uran kernel: esi: 00ff7004 edi: 014d75e8 ebp: 0000590c esp: 01093f14
Sep 22 07:30:02 uran kernel: ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Sep 22 07:30:02 uran kernel: Process fuser (pid: 22798, process nr: 52, stackpage=01093000)
Sep 22 07:30:02 uran kernel: Stack: 014d75e8 01093f70 01093f70 00000001 001e39d8 0012a902 014d75e8 00ff7004
Sep 22 07:30:02 uran kernel: 00000001 01093f70 00000000 01093f70 01093fb4 bfffed24 00000000 0012ab1b
Sep 22 07:30:02 uran kernel: 014d75e8 00ff7003 00000001 01093f70 00000000 01093fb4 bfffed4c 00000000
Sep 22 07:30:02 uran kernel: Call Trace: [lookup+222/248] [_namei+91/228] [lnamei+48/72] [sys_readlink+63/180] [system_call+85/124] [pipe_write+216/516]
Sep 22 07:30:02 uran kernel: Code: 83 78 30 00 0f 84 b8 fe ff ff 89 e8 c1 e0 10 8d 84 08 00 01

I get this with both 2.0.29 with applied linux-2.0.30-stack-symlink.diff

and 2.0.pre31-9 with:

Sep 17 20:52:11 uran kernel: Linux version 2.0.31 (root@crds.chemie.unibas.ch) (gcc version 2.7.2.1.f.1) #6 Wed Sep 17 15:38:35 MET DST 1997
Sep 17 20:52:11 uran kernel: *** Installed patches:
Sep 17 20:52:11 uran kernel: aic7xxx-abort-Sep05.patch (Doug Ledford <dledford@dialnet.net>)
Sep 17 20:52:11 uran kernel: awedrv-0.4.1d
Sep 17 20:52:11 uran kernel: commands_sent.ledford.Sep09.advice if (p->device_status[TARGET_INDEX(cmd)].commands_sent < 50)
Sep 17 20:52:11 uran kernel: interrupt.timeout.zubkoff.Sep09.patch (Leonard Zubkoff)
Sep 17 20:52:11 uran kernel: linux-2.0.30-stack-symlink.diff (Solar+)
Sep 17 20:52:11 uran kernel: Linux Unofficial Patch Printout (2.0.30)
Sep 17 20:52:11 uran kernel: pre-patch-2.0.31-9 (Linus)
Sep 17 20:52:11 uran kernel: test.1.werner.patch (dr. Werner Fink), Sep 09 1997
Sep 17 20:52:11 uran kernel: *** End of Patches

I have tried the second kernel with stack-nonexec on and (symlink-patch on
and off). But the problem may be with hardlink protection which is not
configurable in .config . Trampoline detection was disabled. The system
works properly with plain 2.0.29.
After the GPE the system continues to run (end generate GPEs) for days.

I have also got an report of "w" killed by SEGV in 2.0.pre31-9 with above
mentioned set of patches.

Hope it will be of some help.

--
Tomasz Motylewski