Package: libc6 Version: 2.13-32 Severity: important
-- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: armhf (armv7l) Kernel: Linux 3.1.10-l4t.r15.01 (SMP w/2 CPU cores; PREEMPT) Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libc6 depends on: ii libc-bin 2.13-32 ii libgcc1 1:4.7.0-7 libc6 recommends no packages. Versions of packages libc6 suggests: ii debconf [debconf-2.0] 1.5.43 ii glibc-doc <none> ii locales 2.13-32 -- debconf information excluded Example : #include <dlfcn.h> #include <stdio.h> #include <string.h> int main() { printf("Opening ...\n"); dlopen("./libsoftfloat.so",RTLD_LAZY); /* exits application */ printf("Opened\n"); return 0; } This program will never print Opened if run on armhf, and libsoftfloat is an armel binary, since dlopen will exit the entire process group. This is not acceptable, as dlopen should simply just fail, allowing the program to continue. This also means that if you install something that adds an armel .so to /etc/ld.so.preload the system is rendered unusable as no process will be able to start. It should be possible to have an armel and armhf added to preload, and only have the one matching the architecture loaded. The affected code is in a debian specific patch that is applied to elf/dl-load.c - the lines are in the function arm_specific_checks: #ifdef __ARM_PCS_VFP if (!is_hf) _exit(1); #else if (is_hf) _exit(1); #endif It should NOT exit the process group like that, but rather return an error: #ifdef __ARM_PCS_VFP if (!is_hf) return EINVAL; #else if (is_hf) return EINVAL; #endif making dlopen fail gracefully. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org