Bug 164755
| Summary: | SysV IPC operation incorrectly handled on x86-64 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ulrich Drepper <drepper> | ||||||
| Component: | strace | Assignee: | Roland McGrath <roland> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Brian Brock <bbrock> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | rawhide | CC: | ldv | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | 4.5.14 | Doc Type: | Bug Fix | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2006-04-03 08:34:47 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 158504 | ||||||||
| Attachments: |
|
||||||||
Created attachment 117330 [details]
Remove special linux demux handling for x86-64
Created attachment 117546 [details]
strace-4.5.13-drepper-x86_64-ipc.patch
Rediffed for strace-4.5.13.
Your patch breaks it for 32-bit inferiors. I've put in changes upstream that should do the trick. Fixed in fc4 update and in fc5. |
Description of problem: Unlike some/most other archs, x86-64 has real syscalls for the SysV IPC operations. This means the special #ifdef LINUX code in the various sys_* functions must be avoided for x86-64. Version-Release number of selected component (if applicable): strace-4.5.12-1.x86_64 How reproducible: always Steps to Reproduce: 1.strace any code using msgsnd, msgrcv, ... 2. 3. Actual results: [pid 19816] msgsnd(98304, {6549608, umovestr: Input/output error 0x8}, 140737484181616, 0x4 /* MSG_??? */) = 0 Expected results: [pid 24526] msgsnd(262149, {1, "\0\0\0\0"}, 4, 0) = 0 Additional info: Attached patch should fix it. There are also some syscall number bugs. 2005-07-31 Ulrich Drepper <drepper> * linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and msgctl. * ipc.c: Don't use LINUX specific code in sys_msgctl, sys_msgsnd, sys_msgrcv, sys_semop, sys_shmctl, sys_shmat, sys_shmdt. Add appropriate non-demux code to sys_semtimedop.