1.3.71/72 mmap problem?

Mike Black (mblack@csihq.com)
Sat, 09 Mar 1996 10:36:43 -0500


Tried on both 1.3.71 and 72 (ELF):

gcc 2.7.2 (also tried gcc.2.7.0)
libc.so.5.2.18 (also tried libc.so.5.0.9)
libdeslibdes.tar.92-10-13.gz

Running the "des" command as "des -e -k 12345678 anyfile outfile" produces a
segmentation violation:

open("", O_RDONLY) = 3
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40006000
close(3) = 0
mprotect(0x40000000, 17899, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x8000000, 16240, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=1073, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
mmap(0, 1073, PROT_READ, MAP_SHARED, 3, 0) = 0x40007000
close(3) = 0
open("/lib/libc.so.5.2.18", O_RDONLY) = 3
open("/dev/zero", O_RDONLY) = 4
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 708608, PROT_NONE, MAP_PRIVATE, 4, 0) = 0x40008000
mmap(0x40008000, 479678, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0) = 0x40008000
mmap(0x4007e000, 18776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x75000)
= 0x4007e000
mmap(0x40083000, 203456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x
40083000
close(4) = 0
close(3) = 0
munmap(0x40007000, 1073) = 0
mprotect(0x8000000, 16240, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 17899, PROT_READ|PROT_EXEC) = 0
SYS_136(0, 0x6, 0x18, 0x40000000, 0x40001df0) = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

The same command works fine on an a.out system. Also works OK when
statically linked.
Any pointers on where to go from here? Known problems?
-
/----------------------------------------------------------\
| Mike Black mblack@csihq.com 407-676-5118, x203 |
| Computer Science Innovations, Inc. 407-676-2355 FAX |
| Melbourne FL 32904-2314 http://www.csihq.com |
\----------------------------------------------------------/