Package: libc6 Version: 2.3.2.ds1-10 Severity: grave Arch: ARM
After upgrading libc6 on an ARM-based handheld running "sarge" to "sid", all programs in modutils (lsmod, for instance), issue an error "lsmod: QM_MODULES: Function not implemented" and exit when run as root. When run as non-root, lsmod runs expected, the other commands (modprobe, insmod) fail with the QM_MODULES error message. Here is the output of "strace lsmod" when run as root: > execve("/sbin/lsmod", ["lsmod"], [/* 15 vars */]) = 0 > uname({sys="Linux", node="cirrus", ...}) = 0 > brk(0) = 0x28494 > 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=11129, ...}) = 0 > old_mmap(NULL, 11129, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000 > close(3) = 0 > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) > open("/lib/libc.so.6", O_RDONLY) = 3 > read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(t\1\0004"..., 512) = 512 > fstat64(3, {st_mode=S_IFREG|0644, st_size=1166132, ...}) = 0 > old_mmap(NULL, 1202940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001e000 > old_mmap(0x40136000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, > 0x110000) = 0x40136000 > old_mmap(0x40142000, 6908, PROT_READ|PROT_WRITE, > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40142000 > close(3) = 0 > munmap(0x40015000, 11129) = 0 > brk(0) = 0x28494 > brk(0x49494) = 0x49494 > brk(0) = 0x49494 > brk(0x4a000) = 0x4a000 > open("/proc/sys/kernel/tainted", O_RDONLY) = 3 > fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = > 0x40015000 > read(3, "1\n", 4096) = 2 > close(3) = 0 > munmap(0x40015000, 4096) = 0 > brk(0) = 0x4a000 > brk(0) = 0x4a000 > brk(0x49000) = 0x49000 > brk(0) = 0x49000 > fstat64(1, {st_mode=S_IFREG|0644, st_size=1891, ...}) = 0 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = > 0x40015000 > getuid32() = 0 > write(2, "lsmod: ", 7lsmod: ) = 7 > write(2, "QM_MODULES: Function not impleme"..., 37QM_MODULES: Function not > implemented > ) = 37 > write(2, "\n", 1 > ) = 1 > write(1, "Module Size Us"..., 54Module Size Used > by Tainted: P > ) = 54 > munmap(0x40015000, 4096) = 0 > io_submit(0x1, 0, 0xfbad2088) = -1 ENOSYS (Function not implemented) > _exit(1) = ? Here is the same for a non-root user (uid 1000): > execve("/sbin/lsmod", ["/sbin/lsmod"], [/* 14 vars */]) = 0 > uname({sys="Linux", node="cirrus", ...}) = 0 > brk(0) = 0x28494 > 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=11129, ...}) = 0 > old_mmap(NULL, 11129, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000 > close(3) = 0 > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) > open("/lib/libc.so.6", O_RDONLY) = 3 > read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(t\1\0004"..., 512) = 512 > fstat64(3, {st_mode=S_IFREG|0644, st_size=1166132, ...}) = 0 > old_mmap(NULL, 1202940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001e000 > old_mmap(0x40136000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, > 0x110000) = 0x40136000 > old_mmap(0x40142000, 6908, PROT_READ|PROT_WRITE, > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40142000 > close(3) = 0 > munmap(0x40015000, 11129) = 0 > brk(0) = 0x28494 > brk(0x49494) = 0x49494 > brk(0) = 0x49494 > brk(0x4a000) = 0x4a000 > open("/proc/sys/kernel/tainted", O_RDONLY) = 3 > fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = > 0x40015000 > read(3, "1\n", 4096) = 2 > close(3) = 0 > munmap(0x40015000, 4096) = 0 > brk(0) = 0x4a000 > brk(0) = 0x4a000 > brk(0x49000) = 0x49000 > brk(0) = 0x49000 > fstat64(1, {st_mode=S_IFREG|0644, st_size=1897, ...}) = 0 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = > 0x40015000 > getuid32() = 1000 > write(1, "Module Size Us"..., 54Module Size Used > by Tainted: P > ) = 54 > open("/proc/modules", O_RDONLY) = 3 > read(3, "sharp_mmcsd_m 25888 1"..., 100) = 100 > write(1, "sharp_mmcsd_m 25888 1"..., 100sharp_mmcsd_m 25888 1 > pxa_bi 21612 0 (unused) > net_fd 25) = 100 > read(3, "824 1\nusbdmonitor "..., 100) = 90 > write(1, "824 1\nusbdmonitor "..., 90824 1 > usbdmonitor 5216 0 > usbdcore 34608 0 [pxa_bi net_fd] > ) = 90 > read(3, "", 100) = 0 > close(3) = 0 > munmap(0x40015000, 4096) = 0 > io_submit(0, 0, 0xfbad2088) = -1 ENOSYS (Function not implemented) > _exit(0) = ? I wasn't able to reproduce this with an x86 desktop computer. The Linux kernel in use is 2.4.18-rmk7-pxa3-embedix, the patches to 2.4.18 are required to make it work on the special hardware on this machine (SHARP Zaurus C7x0). I ranked the bug as "grave" because rebooting the Zaurus with this libc6 installed and no working version available in internal flash memory prevents any kind of communication with the device other than via the keyboard and screen. Andras =========================================================================== Major Andras e-mail: [EMAIL PROTECTED] www: http://andras.webhop.org/ =========================================================================== -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]