Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 569595 - posix_fadvise() handles its arguments incorrectly in 32-bit compat mode. [rhel-5.2.z]
posix_fadvise() handles its arguments incorrectly in 32-bit compat mode. [rhe...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
5.6
All Linux
high Severity high
: rc
: ---
Assigned To: Jiri Pirko
Red Hat Kernel QE team
: ZStream
Depends On: 559410
Blocks:
  Show dependency treegraph
 
Reported: 2010-03-01 14:52 EST by RHEL Product and Program Management
Modified: 2015-05-04 21:19 EDT (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-03-16 23:18:59 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)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0148 normal SHIPPED_LIVE Important: kernel security and bug fix update 2010-03-16 23:18:17 EDT

  None (edit)
Description RHEL Product and Program Management 2010-03-01 14:52:26 EST
This bug has been copied from bug #559410 and has been proposed
to be backported to 5.2 z-stream (EUS).
Comment 3 Jiri Pirko 2010-03-02 09:14:01 EST
in 2.6.18-92.1.37.el5
Comment 7 Chris Lalancette 2010-03-05 08:39:57 EST
Please note that you'll need the followup patch for the Xen kernel as well.  That was just posted, and should be integrated into the 5.5 kernel soon.

Chris Lalancette
Comment 8 yanfu,wang 2010-03-09 01:21:44 EST
reproduce on kernel 2.6.18-92.1.35.el5xen:
# uname -a
Linux dell-pe1950-01.rhts.eng.bos.redhat.com 2.6.18-92.1.35.el5xen #1 SMP Thu Jan 14 13:24:37 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

# strace ./fadvise_test32 
execve("./fadvise_test32", ["./fadvise_test32"], [/* 23 vars */]) = 0
[ Process PID=6158 runs in 32 bit mode. ]
brk(0)                                  = 0x808b000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=81009, ...}) = 0
mmap2(NULL, 81009, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7fb2000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000o\267\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1602128, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fb1000
mmap2(0xb61000, 1320356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb61000
mmap2(0xc9e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xc9e000
mmap2(0xca1000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xca1000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fb0000
set_thread_area(0xffdc5404)             = 0
mprotect(0xc9e000, 8192, PROT_READ)     = 0
mprotect(0xb5d000, 4096, PROT_READ)     = 0
munmap(0xf7fb2000, 81009)               = 0
open("/bin/cat", O_RDONLY)              = 3
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fc5000
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 0
) = 44
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 1
) = 44
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 2
) = 44
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 3
) = 44
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 4
) = 44
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument)
write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 5
) = 44
close(3)                                = 0
exit_group(0)                           = ?


verify on kernel 2.6.18-92.1.38.el5xen:
# uname -a
Linux dell-pe1950-01.rhts.eng.bos.redhat.com 2.6.18-92.1.38.el5xen #1 SMP Mon Mar 8 12:09:26 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

# strace ./fadvise_test32 
execve("./fadvise_test32", ["./fadvise_test32"], [/* 23 vars */]) = 0
[ Process PID=6265 runs in 32 bit mode. ]
brk(0)                                  = 0x91f2000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=81009, ...}) = 0
mmap2(NULL, 81009, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7fd7000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000o\267\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1602128, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fd6000
mmap2(0xb61000, 1320356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb61000
mmap2(0xc9e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xc9e000
mmap2(0xca1000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xca1000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fd5000
set_thread_area(0xffce8d24)             = 0
mprotect(0xc9e000, 8192, PROT_READ)     = 0
mprotect(0xb5d000, 4096, PROT_READ)     = 0
munmap(0xf7fd7000, 81009)               = 0
open("/bin/cat", O_RDONLY)              = 3
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fea000
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 0
) = 43
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 1
) = 43
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 2
) = 43
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 3
) = 43
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 4
) = 43
fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0
write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 5
) = 43
close(3)                                = 0
exit_group(0)                           = ?
Comment 10 Jiri Pirko 2010-03-09 09:58:48 EST
additional patch in 2.6.18-92.1.38.el5
Comment 12 errata-xmlrpc 2010-03-16 23:18:59 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0148.html

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