Bug#314937: invalid execve() usage

Marcin Owsiany Marcin Owsiany <marcin@owsiany.pl>, 314937@bugs.debian.org
Sun Jun 19 14:59:01 2005


Package: jsvc
Version: 1.0-5
Severity: grave

As revealed by strace, jsvc tries to reexec itself without using full
path. This causes the package to be unusable.

execve("/usr/bin/jsvc", ["jsvc", "-home", "/usr/lib/j2sdk1.5-sun", "-Dcatalina.home=/opt/jakarta-tom"..., "-outfil e", "/opt/jakarta-tomcat/logs/catalin"..., "-errfile", "&1", "-pidfile", "/opt/jakarta-tomcat/temp/tomcat."..., "- cp", "/opt/kodo-jdo:/opt/kodo-jdo/lib/"..., "org.apache.catalina.startup.Boot"...], [/* 42 vars */]) = 0
uname({sys="Linux", node="melina11", ...}) = 0
brk(0)                                  = 0x8050000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe9000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=50925, ...}) = 0
old_mmap(NULL, 50925, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fdc000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libdl.so.2", 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\0\320\32"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9872, ...}) = 0
old_mmap(NULL, 8632, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xb7fd9000
old_mmap(0xb7fdb000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0xb7fdb000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\0`Z\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1254468, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd8000
old_mmap(NULL, 1264780, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xb7ea3000
old_mmap(0xb7fcd000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x129000) = 0xb7fcd000
old_mmap(0xb7fd6000, 7308, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fd6000
close(3)                                = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fd8880, limit:1048575, seg_32bit:1, contents:0, read_exec_onl y:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7fdc000, 50925)               = 0
brk(0)                                  = 0x8050000
brk(0x8071000)                          = 0x8071000
brk(0)                                  = 0x8071000
stat64("/usr/lib/j2sdk1.5-sun", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/usr/lib/j2sdk1.5-sun/jre/lib/jvm.cfg", 0xbfffdd9c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2sdk1.5-sun/lib/jvm.cfg", 0xbfffdd9c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2sdk1.5-sun/jre/lib/i386/classic/libjvm.so", 0xbfffdd9c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2sdk1.5-sun/jre/lib/i386/client/libjvm.so", {st_mode=S_IFREG|0644, st_size=4260981, ...}) = 0
execve("jsvc", ["jsvc.exec", "-home", "/usr/lib/j2sdk1.5-sun", "-Dcatalina.home=/opt/jakarta-tom"..., "-outfile", "/opt/jakarta-tomcat/logs/catalin"..., "-errfile", "&1", "-pidfile", "/opt/jakarta-tomcat/temp/tomcat."..., "-cp",  "/opt/kodo-jdo:/opt/kodo-jdo/lib/"..., "org.apache.catalina.startup.Boot"...], [/* 43 vars */]) = -1 ENOENT (No s uch file or directory)
write(2, "jsvc error: ", 12jsvc error: )            = 12
write(2, "Cannot execute JSVC executor pro"..., 36Cannot execute JSVC executor process) = 36
write(2, "\n", 1
)                       = 1

This can be worked around by "ln -s /usr/bin/jsvc ."

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.11-1-k7
Locale: LANG=pl_PL, LC_CTYPE=pl_PL (charmap=ISO-8859-2)

Versions of packages jsvc depends on:
ii  libc6                       2.3.2.ds1-22 GNU C Library: Shared libraries an
ii  libcommons-daemon-java      1.0-5        Java API to launch java applicatio

jsvc recommends no packages.

-- no debconf information