NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/38982: PaX ASLR makes some programs crash
>Number: 38982
>Category: kern
>Synopsis: PaX ASLR makes some programs crash
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jun 18 21:15:01 +0000 2008
>Originator: Christian Biere
>Release: NetBSD 4.99.64
>Environment:
System: NetBSD cyclonus 4.99.64 NetBSD 4.99.64 (G3N3R1C) #4: Sun Jun 15
00:16:48 CEST 2008 src@cyclonus:/sys/arch/i386/compile/G3N3R1C i386
Architecture: i386
Machine: i386
>Description:
Some programs reliably crash if security.pax.aslr.global is set to 1. Using
paxctl
to disable ASLR for these programs as a workaround has no effect.
>How-To-Repeat:
# useradd blah
useradd: Warning: home directory `/home/blah' doesn't exist, and -m was not
specified
useradd: Can't add user `blah': pw_mkdb failed
$ printf 'all:\n\techo\n' > ~/tmp/Makefile && cd ~/tmp && gmake
echo
gmake: *** [all] Abort trap
The flags set with paxctl on gmake have no effect whatsoever:
$ paxctl /usr/pkg/bin/gmake
PaX flags:
a: ASLR, explicit disable
m: mprotect(2) restrictions, explicit disable
Likewise setting security.pax.aslr.global=0 and enabling ASLR with paxctl for
gmake
does not cause a crash. The flag seems to be completely ignored.
The trace shows that __stat30() and readlink() fail for existing accessible
files:
-rw-r--r-- 1 root wheel 55 Oct 8 2002 /etc/ld.so.conf
-r--r--r-- 1 root wheel 4286 Jun 15 22:55 /usr/share/nls/C/libc.cat
lrwxr-xr-x 1 root wheel 24 Jun 16 19:50 /usr/lib/libc.so.12 ->
../../lib/libc.so.12.159
-r--r--r-- 1 root wheel 1105108 Jun 16 19:50 /lib/libc.so.12.159
16381 1 ktruss emul(netbsd)
16381 1 ktruss fktrace = 0
16381 1 ktruss fcntl(0x5, 0x3, 0) = 1
16381 1 ktruss fcntl(0x5, 0x4, 0x1) = 0
16381 1 ktruss execve("/bin/gmake", 0xbf71015c, 0xbf710164) Err#2 ENOENT
16381 1 ktruss execve("/usr/bin/gmake", 0xbf71015c, 0xbf710164) Err#2
ENOENT
16381 1 gmake emul(netbsd)
16381 1 gmake execve("/usr/pkg/bin/gmake", 0xbf71015c, 0xbf710164)
JUSTRETURN
16381 1 gmake mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) =
0xbbbe9000
16381 1 gmake open("/usr/libexec/ld.elf_so", 0, 0) = 3
16381 1 gmake read(0x3, 0xbfbfebfc, 0x80) = 55
"libm.so.0\tmachdep.fpu_present\t1:libm387.so.0,libm.so.0\n"
16381 1 gmake close(0x3) = 0
16381 1 gmake open("/etc/ld.so.conf", 0, 0) Err#2 ENOENT
16381 1 gmake open("/usr/pkg/lib/libintl.so.0", 0, 0) = 3
16381 1 gmake __fstat30(0x3, 0xbfbfe518) = 0
16381 1 gmake mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe8000
16381 1 gmake munmap(0xbbbe8000, 0x1000) = 0
16381 1 gmake mmap(0, 0x7000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbbe2000
16381 1 gmake mmap(0xbbbe7000, 0x2000, 0x3, 0x12, 0x3, 0, 0x5000, 0) =
0xbbbe7000
16381 1 gmake mmap(0xbbbe9000, 0, 0x3, 0x1012, 0xffffffff, 0, 0, 0) =
0xbbbe9000
16381 1 gmake close(0x3) = 0
16381 1 gmake open("/usr/lib/libintl.so.0", 0, 0xbfbfe518) Err#2 ENOENT
16381 1 gmake open("/usr/pkg/lib/libc.so.12", 0, 0xbfbfe518) = 3
16381 1 gmake __fstat30(0x3, 0xbfbfe518) = 0
16381 1 gmake mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe1000
16381 1 gmake munmap(0xbbbe1000, 0x1000) = 0
16381 1 gmake mmap(0, 0xec000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbaf6000
16381 1 gmake mmap(0xbbbcb000, 0x7000, 0x3, 0x12, 0x3, 0, 0xd5000, 0)
= 0xbbbcb000
16381 1 gmake mmap(0xbbbd2000, 0x10000, 0x3, 0x1012, 0xffffffff, 0, 0,
0) = 0xbbbd2000
16381 1 gmake close(0x3) = 0
16381 1 gmake __sysctl(0xbfbfec40, 0x2, 0xbbbe0c40, 0xbfbfec48, 0, 0)
= 0
16381 1 gmake getrlimit(0x3, 0xbfbfec94) = 0
16381 1 gmake setrlimit(0x3, 0xbfbfec94) = 0
16381 1 gmake issetugid() = 0
16381 1 gmake __sysctl(0xbfbfdb58, 0x2, 0xbbbd9ebc, 0xbfbfdb60, 0, 0)
= 0
16381 1 gmake __sysctl(0xbfbfda98, 0x2, 0xbbbe0c20, 0xbfbfdaa0, 0, 0)
= 0
16381 1 gmake readlink("/usr/lib/libc.so.12", 0xbfbfdb65, 0x400) Err#2
ENOENT
16381 1 gmake break(0x806d954) = 0
16381 1 gmake break(0x806d954) = 0
16381 1 gmake break(0x8100000) = 0
16381 1 gmake mmap(0, 0x100000, 0x3, 0x14001002, 0xffffffff, 0, 0, 0)
= 0xbb900000
16381 1 gmake __sigaction_sigtramp(0x1, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x3, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x2, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0xf, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x18, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x19, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x14, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __fstat30(0x1, 0xbfbfdf48) = 0
16381 1 gmake __getcwd(0xbfbfe894, 0x400) = 13
16381 1 gmake __stat30("/etc/malloc.conf", 0xbfbfdf88) = 0
16381 1 gmake __stat30("/usr/pkg/include", 0xbfbfdf88) Err#2 ENOENT
16381 1 gmake __stat30("/usr/gnu/include", 0xbfbfdf88) = 0
16381 1 gmake __stat30("/usr/local/include", 0xbfbfdf88) = 0
16381 1 gmake __sigaction_sigtramp(0x14, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __sigaction_sigtramp(0x1e, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
16381 1 gmake __stat30("/usr/include", 0xbfbfdeb4) = 0
16381 1 gmake open(".", 0x4, 0) = 3
16381 1 gmake fcntl(0x3, 0x2, 0x1) = 0
16381 1 gmake __fstat30(0x3, 0xbfbfd540) = 0
16381 1 gmake fstatvfs1(0x3, 0xbfbfd5a4, 0x2) = 0
16381 1 gmake lseek(0x3, 0, 0, 0, 0x1) = 0
16381 1 gmake __getdents30(0x3, 0xbb925000, 0x1000) = 304
"\M-J{\0\0\0\0\0\0\^P\0\^A\0\^D.\0\0\^B\0\0\0\0\0\0\0\^P\0\^B\0\^D..\0"
16381 1 gmake lseek(0x3, 0, 0, 0, 0x1) = 512
16381 1 gmake __getdents30(0x3, 0xbb925000, 0x1000) = 0
""
16381 1 gmake close(0x3) = 0
16381 1 gmake open(".", 0, 0x1b6) = 3
16381 1 gmake __fstat30(0x3, 0xbfbfdcf8) = 0
16381 1 gmake read(0x3, 0xbb927000, 0x2000) = 11
"all:\n\techo\n"
16381 1 gmake read(0x3, 0xbb927000, 0x2000) = 0
""
16381 1 gmake close(0x3) = 0
16381 1 gmake __stat30("Makefile", 0xbfbfdef4) Err#2 ENOENT
16381 1 gmake __stat30("RCS", 0xbfbfdef4) Err#2 ENOENT
16381 1 gmake __stat30("SCCS", 0xbfbfdef8) = 0
16381 1 gmake gettimeofday(0xbfbfdf38, 0) = 0
16381 1 gmake __stat30("Makefile", 0xbfbfde18) Err#2 ENOENT
16381 1 gmake write(0x1, 0xbb902400, 0x5) = 5
"echo\n"
16381 1 gmake pipe() = 3, 6
16381 1 gmake close(0x6) = 0
16381 1 gmake fcntl(0x3, 0x2, 0x1) = 0
16381 1 gmake __sigprocmask14(0x1, 0x806d900, 0) = 0
21284 1 gmake emul(netbsd)
21284 1 gmake fork = 0
21284 1 gmake __sigprocmask14(0x3, 0xbfbfddb8, 0) = 0
16381 1 gmake __vfork14() = 21284
16381 1 gmake SIGCHLD caught handler=0x80542c0 mask=0x1804007 code=0x0
16381 1 gmake setcontext(0xbfbfdac8) JUSTRETURN
16381 1 gmake __sigprocmask14(0x3, 0xbfbfde18, 0) = 0
16381 1 gmake wait4(0xffffffff, 0xbfbfde88, 0, 0) = 21284
16381 1 gmake issetugid() = 0
16381 1 gmake issetugid() = 0
16381 1 gmake open("all", 0, 0xbfbfd084) Err#2 ENOENT
16381 1 gmake open("/usr/share/nls/nls.alias.db", 0, 0xbfbfd0e8) = 6
16381 1 gmake fcntl(0x6, 0x2, 0x1) = 0
16381 1 gmake __fstat30(0x6, 0xbfbfd078) = 0
16381 1 gmake mmap(0, 0x5f0, 0x1, 0x2, 0x6, 0, 0, 0) = 0xbbaf5000
16381 1 gmake close(0x6) = 0
16381 1 gmake munmap(0xbbaf5000, 0x5f0) = 0
16381 1 gmake open("/usr/share/nls/nls.alias", 0, 0xbfbfd508) = 6
16381 1 gmake __fstat30(0x6, 0xbfbfd508) = 0
16381 1 gmake mmap(0, 0x10be, 0x1, 0x1, 0x6, 0, 0, 0) = 0xbbaf4000
16381 1 gmake close(0x6) = 0
16381 1 gmake munmap(0xbbaf4000, 0x10be) = 0
16381 1 gmake write(0x2, 0xbfbfd618, 0x7) = 7
"gmake: "
16381 1 gmake write(0x2, 0xbfbfd648, 0x14) = 20
"*** [all] Abort trap"
16381 1 gmake write(0x2, 0x806d233, 0x1) = 1
"\n"
16381 1 gmake __stat30("/usr/share/nls/C/libc.cat", 0xbfbfdda8) Err#2
ENOENT
16381 1 gmake __sigprocmask14(0x1, 0x806d900, 0) = 0
16381 1 gmake __sigprocmask14(0x3, 0xbfbfde18, 0) = 0
16381 1 gmake chdir("all") = 0
16381 1 gmake close(0x1) = 0
16381 1 gmake exit(0x2)
The same with security.pax.aslr.global=0
26672 1 ktruss emul(netbsd)
26672 1 ktruss fktrace = 0
26672 1 ktruss fcntl(0x5, 0x3, 0) = 1
26672 1 ktruss fcntl(0x5, 0x4, 0x1) = 0
26672 1 ktruss execve("/bin/gmake", 0xbfbfed08, 0xbfbfed10) Err#2 ENOENT
26672 1 ktruss execve("/usr/bin/gmake", 0xbfbfed08, 0xbfbfed10) Err#2
ENOENT
26672 1 gmake emul(netbsd)
26672 1 gmake execve("/usr/pkg/bin/gmake", 0xbfbfed08, 0xbfbfed10)
JUSTRETURN
26672 1 gmake mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) =
0xbbbe9000
26672 1 gmake open("/usr/libexec/ld.elf_so", 0, 0) = 3
26672 1 gmake read(0x3, 0xbfbfebfc, 0x80) = 55
"libm.so.0\tmachdep.fpu_present\t1:libm387.so.0,libm.so.0\n"
26672 1 gmake close(0x3) = 0
26672 1 gmake open("/etc/ld.so.conf", 0, 0) Err#2 ENOENT
26672 1 gmake open("/usr/pkg/lib/libintl.so.0", 0, 0) = 3
26672 1 gmake __fstat30(0x3, 0xbfbfe518) = 0
26672 1 gmake mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe8000
26672 1 gmake munmap(0xbbbe8000, 0x1000) = 0
26672 1 gmake mmap(0, 0x7000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbbe2000
26672 1 gmake mmap(0xbbbe7000, 0x2000, 0x3, 0x12, 0x3, 0, 0x5000, 0) =
0xbbbe7000
26672 1 gmake mmap(0xbbbe9000, 0, 0x3, 0x1012, 0xffffffff, 0, 0, 0) =
0xbbbe9000
26672 1 gmake close(0x3) = 0
26672 1 gmake open("/usr/lib/libintl.so.0", 0, 0xbfbfe518) Err#2 ENOENT
26672 1 gmake open("/usr/pkg/lib/libc.so.12", 0, 0xbfbfe518) = 3
26672 1 gmake __fstat30(0x3, 0xbfbfe518) = 0
26672 1 gmake mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe1000
26672 1 gmake munmap(0xbbbe1000, 0x1000) = 0
26672 1 gmake mmap(0, 0xec000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbaf6000
26672 1 gmake mmap(0xbbbcb000, 0x7000, 0x3, 0x12, 0x3, 0, 0xd5000, 0)
= 0xbbbcb000
26672 1 gmake mmap(0xbbbd2000, 0x10000, 0x3, 0x1012, 0xffffffff, 0, 0,
0) = 0xbbbd2000
26672 1 gmake close(0x3) = 0
26672 1 gmake __sysctl(0xbfbfec40, 0x2, 0xbbbe0c40, 0xbfbfec48, 0, 0)
= 0
26672 1 gmake getrlimit(0x3, 0xbfbfec94) = 0
26672 1 gmake setrlimit(0x3, 0xbfbfec94) = 0
26672 1 gmake issetugid() = 0
26672 1 gmake __sysctl(0xbfbfdb58, 0x2, 0xbbbd9ebc, 0xbfbfdb60, 0, 0)
= 0
26672 1 gmake __sysctl(0xbfbfda98, 0x2, 0xbbbe0c20, 0xbfbfdaa0, 0, 0)
= 0
26672 1 gmake readlink("/usr/lib/libc.so.12", 0xbfbfdb65, 0x400) Err#2
ENOENT
26672 1 gmake break(0x806d954) = 0
26672 1 gmake break(0x806d954) = 0
26672 1 gmake break(0x8100000) = 0
26672 1 gmake mmap(0, 0x100000, 0x3, 0x14001002, 0xffffffff, 0, 0, 0)
= 0xbb900000
26672 1 gmake __sigaction_sigtramp(0x1, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x3, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x2, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0xf, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x18, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x19, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x14, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __fstat30(0x1, 0xbfbfdf48) = 0
26672 1 gmake __getcwd(0xbfbfe894, 0x400) = 13
26672 1 gmake __stat30("/etc/malloc.conf", 0xbfbfdf88) = 0
26672 1 gmake __stat30("/usr/pkg/include", 0xbfbfdf88) Err#2 ENOENT
26672 1 gmake __stat30("/usr/gnu/include", 0xbfbfdf88) = 0
26672 1 gmake __stat30("/usr/local/include", 0xbfbfdf88) = 0
26672 1 gmake __sigaction_sigtramp(0x14, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __sigaction_sigtramp(0x1e, 0xbfbfdfdc, 0xbfbfdfc4,
0xbbb64ca0, 0x2) = 0
26672 1 gmake __stat30("/usr/include", 0xbfbfdeb4) = 0
26672 1 gmake open(".", 0x4, 0) = 3
26672 1 gmake fcntl(0x3, 0x2, 0x1) = 0
26672 1 gmake __fstat30(0x3, 0xbfbfd540) = 0
26672 1 gmake fstatvfs1(0x3, 0xbfbfd5a4, 0x2) = 0
26672 1 gmake lseek(0x3, 0, 0, 0, 0x1) = 0
26672 1 gmake __getdents30(0x3, 0xbb925000, 0x1000) = 304
"\M-J{\0\0\0\0\0\0\^P\0\^A\0\^D.\0\0\^B\0\0\0\0\0\0\0\^P\0\^B\0\^D..\0"
26672 1 gmake lseek(0x3, 0, 0, 0, 0x1) = 512
26672 1 gmake __getdents30(0x3, 0xbb925000, 0x1000) = 0
""
26672 1 gmake close(0x3) = 0
26672 1 gmake open(".", 0, 0x1b6) = 3
26672 1 gmake __fstat30(0x3, 0xbfbfdcf8) = 0
26672 1 gmake read(0x3, 0xbb927000, 0x2000) = 11
"all:\n\techo\n"
26672 1 gmake read(0x3, 0xbb927000, 0x2000) = 0
""
26672 1 gmake close(0x3) = 0
26672 1 gmake __stat30("Makefile", 0xbfbfdef4) Err#2 ENOENT
26672 1 gmake __stat30("RCS", 0xbfbfdef4) Err#2 ENOENT
26672 1 gmake __stat30("SCCS", 0xbfbfdef8) = 0
26672 1 gmake gettimeofday(0xbfbfdf38, 0) = 0
26672 1 gmake __stat30("Makefile", 0xbfbfde18) Err#2 ENOENT
26672 1 gmake write(0x1, 0xbb902400, 0x5) = 5
"echo\n"
26672 1 gmake pipe() = 3, 6
26672 1 gmake close(0x6) = 0
26672 1 gmake fcntl(0x3, 0x2, 0x1) = 0
26672 1 gmake __sigprocmask14(0x1, 0x806d900, 0) = 0
17330 1 gmake emul(netbsd)
17330 1 gmake fork = 0
17330 1 gmake __sigprocmask14(0x3, 0xbfbfddb8, 0) = 0
17330 1 echo emul(netbsd)
17330 1 echo execve("/bin/echo", 0xbb928f40, 0xbb92a080) JUSTRETURN
26672 1 gmake __vfork14() = 17330
26672 1 gmake __sigprocmask14(0x3, 0xbfbfde18, 0) = 0
17330 1 echo mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) =
0xbbbe9000
17330 1 echo open("/libexec/ld.elf_so", 0, 0) = 3
17330 1 echo read(0x3, 0xbfbfebd0, 0x80) = 55
"libm.so.0\tmachdep.fpu_present\t1:libm387.so.0,libm.so.0\n"
17330 1 echo close(0x3) = 0
17330 1 echo open("/etc/ld.so.conf", 0, 0) = 3
17330 1 echo __fstat30(0x3, 0xbfbfe4ec) = 0
17330 1 echo mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe8000
17330 1 echo munmap(0xbbbe8000, 0x1000) = 0
17330 1 echo mmap(0, 0xec000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbafd000
17330 1 echo mmap(0xbbbd2000, 0x7000, 0x3, 0x12, 0x3, 0, 0xd5000, 0)
= 0xbbbd2000
17330 1 echo mmap(0xbbbd9000, 0x10000, 0x3, 0x1012, 0xffffffff, 0, 0,
0) = 0xbbbd9000
17330 1 echo close(0x3) = 0
17330 1 echo __sysctl(0xbfbfec14, 0x2, 0xbbbe7c40, 0xbfbfec1c, 0, 0)
= 0
17330 1 echo issetugid() = 0
17330 1 echo __fstat30(0x1, 0xbfbfeb58) = 0
17330 1 echo __sysctl(0xbfbfe778, 0x2, 0xbbbe0ebc, 0xbfbfe780, 0, 0)
= 0
17330 1 echo __sysctl(0xbfbfe6b8, 0x2, 0xbbbe7c20, 0xbfbfe6c0, 0, 0)
= 0
17330 1 echo readlink("/lib/libc.so.12", 0xbfbfe785, 0x400) Err#2
ENOENT
17330 1 echo break(0x8049c1c) = 0
17330 1 echo break(0x8049c1c) = 0
17330 1 echo break(0x8100000) = 0
17330 1 echo mmap(0, 0x100000, 0x3, 0x14001002, 0xffffffff, 0, 0, 0)
= 0xbb900000
17330 1 echo write(0x1, 0xbb901000, 0x1) = 1
"\n"
17330 1 echo exit(0)
26672 1 gmake wait4(0xffffffff, 0xbfbfde88, 0, 0) RESTART
26672 1 gmake SIGCHLD caught handler=0x80542c0 mask=0x0 code=0x0
26672 1 gmake setcontext(0xbfbfdb04) JUSTRETURN
26672 1 gmake wait4(0xffffffff, 0xbfbfde88, 0, 0) = 17330
26672 1 gmake __sigprocmask14(0x1, 0x806d900, 0) = 0
26672 1 gmake __sigprocmask14(0x3, 0xbfbfde18, 0) = 0
26672 1 gmake __stat30("all", 0xbfbfdea8) Err#2 ENOENT
26672 1 gmake chdir("all") = 0
26672 1 gmake close(0x1) = 0
26672 1 gmake exit(0)
>Fix:
Home |
Main Index |
Thread Index |
Old Index