Bug 76566 - iBCS stopped working with 2.2.22-6.2.2 (sys_uselib)
iBCS stopped working with 2.2.22-6.2.2 (sys_uselib)
Status: CLOSED WONTFIX
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
6.2
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2002-10-23 10:49 EDT by giulioo
Modified: 2007-04-18 12:47 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2003-05-15 03:02:17 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description giulioo 2002-10-23 10:49:02 EDT
iBCS does not work anymore win errata 2.2.22-6.2.2.
ie: an 'ls' binary from ISC produces segfault.
Previous official kernel was ok.

I understand iBCS is not very supported, so if you could tell which patch in the
kernel interfere with it (I see you had to adjust the ibcs patch) we can disable
it and rebuild a kernel.
Comment 1 giulioo 2002-11-06 15:10:20 EST
FWIW:
Problem started in 2.2.20. Trace of execution of the "ls" binary from ISC

2.2.19:
iBCS: socksys registered on character major 30
iBCS: trace code set to 0x40
COFF: .text, scnptr = 0x00000148, vaddr = 0x00000148
COFF: .data, scnptr = 0x00004634, vaddr = 0x00400634
COFF: .lib section found
COFF: flushing executable
COFF: .text: vaddr = 0x00000148, size = 0x000044ec, scnptr = 0x00000148
COFF: .data: vaddr = 0x00400634, size = 0x000022c4, scnptr = 0x00004634
COFF: .bss: vaddr = 0x004028f8, size = 0x00001b60
COFF: un-initialized storage in last page 1800
COFF: result from verify_area = 0
COFF: /tmp/ls loading shared library /shlib/libc_s
COFF: .text, scnptr = 0x00001000, vaddr = 0xa0000000
COFF: .data, scnptr = 0x00006000, vaddr = 0xa0400000
COFF: .lib section found
COFF: .text: vaddr = 0xa0000000, size = 0x000043d4, scnptr = 0x00001000
COFF: .data: vaddr = 0xa0400000, size = 0x00000440, scnptr = 0x00006000
COFF: .bss: vaddr = 0xa0400440, size = 0x00000018
COFF: un-initialized storage in last page 3008
COFF: result from verify_area = 0
COFF: preload_this_library result = 0
COFF: testing @(#)lc: INTERACTIVE UNIX System, Core Base Version 4.0
COFF:    with INTERACTIVE
COFF:  giving 0x04000005


2.2.20:
iBCS: socksys registered on character major 30
iBCS: trace code set to 0x40
COFF: .text, scnptr = 0x00000148, vaddr = 0x00000148
COFF: .data, scnptr = 0x00004634, vaddr = 0x00400634
COFF: .lib section found
COFF: flushing executable
COFF: .text: vaddr = 0x00000148, size = 0x000044ec, scnptr = 0x00000148
COFF: .data: vaddr = 0x00400634, size = 0x000022c4, scnptr = 0x00004634
COFF: .bss: vaddr = 0x004028f8, size = 0x00001b60
COFF: un-initialized storage in last page 1800
COFF: result from verify_area = 0
COFF: /tmp/ls loading shared library /shlib/libc_s
COFF: preload_this_library result = -8

<segfault>

Seems due to changes in  linux/fs/exec.c sys_uselib 
Comment 2 giulioo 2002-11-07 09:22:36 EST
1)
I replaced fs/exec.c:sys_uselib with the one used in 2.2.19 and problem is solved.
Given that I'm not interested in security, but in functionality only, am I safe
with this change?

2)
Nothing to do with problem, I think, but I see you changed (due to PF_PTRACED
being eliminated from sched.c):
if (current->flags & PF_PTRACED)   -> to --> if (current->flags & PT_PTRACED)
in all ibcs files.
I see that others solved it in other ways:
A) redefining PF_PTRACED as it was originally 0x00000010 (and not 0x00000001 as
in PT_PTRACED)
B) as you did, but also changing "current->flags" into "current->ptrace"

Any comments?

Thanks
Comment 3 giulioo 2003-05-15 03:02:17 EDT
Right now there are no more supported Red Hat releases using kernel 2.2 (latest
was 7.0), so I'm closing this as wontfix.

Note You need to log in before you can comment on or make changes to this bug.