[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#640872: libc6: upgrade fails to mv /lib64.eglibc-new to /lib64; leaves system unusable



Package: libc6
Version: 2.13-19
Severity: critical
Justification: breaks the whole system


remove_lib64_symlink in the preinst script attempts to delete /lib64
and mv /lib64.eglibc-new /lib64.  To run mv without /lib64, it has to
explicitly specify an interpreter, which it does using
  $interpreter /bin/mv /lib64.eglibc-new /lib64

$interpreter is set earlier in the function using
    if ! $ldfile /bin/mv 2>/dev/null; then
        interpreter=
    else
        interpreter=$ldfile
    fi

The intent is that ld will fail if it can't interpret /bin/mv on a
multiarch system.  However, even on a single arch system, this fails,
not because of ld, because becase /bin/mv isn't passed any arguments.
Hence, $interpreter gets incorrectly set to "", so the later call to
$interpreter /bin/mv fails because /bin/mv tries to use the system ELF
interpreter, which was just deleted.


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.39-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libc6 depends on:
ii  libc-bin                      2.13-19    Embedded GNU C Library: Binaries
ii  libgcc1                       1:4.6.1-9  GCC support library

libc6 recommends no packages.

Versions of packages libc6 suggests:
ii  debconf [debconf-2.0]         1.5.39     Debian configuration management sy
ii  glibc-doc                     2.13-2     Embedded GNU C Library: Documentat
ii  locales                       2.13-2     Embedded GNU C Library: National L

-- debconf information:
* glibc/upgrade: true
* glibc/disable-screensaver:
  glibc/restart-failed:
* glibc/restart-services: gdm openbsd-inetd exim4 cups cron atd



Reply to: