Re: 2.3.42: Strange memory corruption

From: Patrick Mau (patrick@oscar.prima.de)
Date: Wed Feb 02 2000 - 12:49:50 EST


On Wed, Feb 02, 2000 at 02:41:02PM +0100, Rik van Riel wrote:
> On Wed, 2 Feb 2000, Patrick Mau wrote:
>
> > I have a really strange memory corruption problem with
> > 2.3.42. My system configuration is as follows:

[snip]

> This looks a bit like there might be a race with the
> pagetable mapping or read()ing of the file. It would
> explain the three `suspicious' segfaults I've seen in
> the last few days...

Hi Rik, Hi linux-kernel,

this is interessting, here's a small strace from bzip2
testing a small archieve. This time it does not fail, but
notice the read() calls and the anonymous mapping.

BTW, all my fileutils, textutils ... etc. are using mmap().
Would it be better to compile them without mmap() support ?

Thanks,
Patrick

--- strace output ---

execve("/usr/bin/bzip2", ["bzip2", "-tv", "netfilter-0.1.17.tar.bz2"], [/* 52 vars */]) = 0
brk(0) = 0x8059416
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat(4, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 6184, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40015000
close(4) = 0
open("/lib/libc.so.6", O_RDONLY) = 4
fstat(4, {st_mode=0, st_size=0, ...}) = 0
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 983228, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40017000
mprotect(0x40100000, 28860, PROT_NONE) = 0
mmap(0x40100000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xe8000) = 0x40100000
mmap(0x40104000, 12476, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40104000
close(4) = 0
mprotect(0x40017000, 954368, PROT_READ|PROT_WRITE) = 0
mprotect(0x40017000, 954368, PROT_READ|PROT_EXEC) = 0
munmap(0x40015000, 6184) = 0
personality(PER_LINUX) = 0
getpid() = 16320
brk(0) = 0x8059416
brk(0x80595b6) = 0x80595b6
brk(0x805a000) = 0x805a000
SYS_174(0x2, 0xbffff6c4, 0xbffff638, 0x8, 0x2) = 0
SYS_174(0xf, 0xbffff6bc, 0xbffff630, 0x8, 0xf) = 0
SYS_174(0xb, 0xbffff6b4, 0xbffff628, 0x8, 0xb) = 0
SYS_174(0x1, 0xbffff6ac, 0xbffff620, 0x8, 0x1) = 0
SYS_174(0x7, 0xbffff6c4, 0xbffff638, 0x8, 0x7) = 0
open("netfilter-0.1.17.tar.bz2", O_RDONLY) = 4
close(4) = 0
lstat("netfilter-0.1.17.tar.bz2", {st_mode=0, st_size=0, ...}) = 0
open("netfilter-0.1.17.tar.bz2", O_RDONLY) = 4
write(2, " netfilter-0.1.17.tar.bz2: ", 28) = 28
brk(0x805c000) = 0x805c000
brk(0x806c000) = 0x806c000
fstat(4, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000
read(4, "BZh91AY&SY\214t\346\275\4\373\275"..., 4096) = 4096
read(4, "\262D\311\4\321\212\r\22\211\262"..., 4096) = 4096
mmap(0, 3600384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40108000
read(4, "I\351\f\231\205\341\314f\10\274~"..., 4096) = 4096
read(4, "\357\177\"3e\202\345\10`M\232\325"..., 4096) = 4096
read(4, "c?\255\237?f\3\350>SC\254\3016\376"..., 4096) = 4096
read(4, "\301\351\276\237\341\366\373\266"..., 4096) = 4096
read(4, "\361\25\304;\265`\274\241\323\361"..., 4096) = 4096
read(4, "\343T\311\302\20\221\310\206(\22"..., 4096) = 4096
read(4, "U+|\214\3546&H:\212^L\211\0\202\212"..., 4096) = 4096
read(4, "\317\327k\20\343J\31O&E\223c[_\31"..., 4096) = 4096
read(4, "\317\212\4\343\37\1\\\350\320c9v"..., 4096) = 4096
...
...
...
read(4, "", 4096) = 0
read(4, "", 4096) = 0
read(4, "", 4096) = 0
read(4, "", 4096) = 0
read(4, "", 4096) = 0
munmap(0x40108000, 3600384) = 0
read(4, "", 4096) = 0
close(4) = 0
munmap(0x40015000, 4096) = 0
write(2, "ok\n", 3) = 3
_exit(0) = ?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Feb 07 2000 - 21:00:08 EST