Comment 33 for bug 201673

Revision history for this message
Bremm (bremm) wrote :

Guys,

I guess I did a miracle. lol

WARNING: if you want try this procedure, read with attention the whole thing before try. It shouldn't harm your system, but need to be careful to avoid screw it up and need redo everything again. This nano-howto is newbie-friendly and released under GPLv2. lmfao

Let me explain exactly what I did... As you can see above, I told my root doesn't have password and suid/sgid binaries and doesn't work with MALLOC_CHECK_="1". But I'm running Xubuntu on a amd64 box, which means I need some stuff functional on 64 and 32 bits (thanks Adobe for beeing lazy with flash plugin). Ehr, so I have ia32libs and also dchroot here. You *need* at least a xterm/console/whatever already running and a web browser would help a lot. Now the fancy workaround:

* run 'dhcroot -d' (the new environment doesn't matter, but I'm assuming you already used it once)

* run 'mkdir newmountpoint' (or any name, just need to be unique)

* run 'sudo mount /dev/sda1 newmountpoint' (check before what's the right partition)

* now 'cd newmountpoint/etc' (check if the content is the same at regular /etc with no chroot)

* create an empty file with 'sudo touch suid-debug' (and check if this file is under /etc, same as above)

* go back with 'cd' and run 'umount /dev/sda1' (might check the right partition above)

* close the chroot running 'exit' (JUST ONCE, BE CAREFUL)

Now you are again on buggy console. Download the new libc6_2.7-9ubuntu2_amd64.deb from main repository, as explained by Marco Rodrigues (using wget) or some browser. If your system is 32 bits download the right i386 package. Now you'll do the easy part:

* run 'export MALLOC_CHECK_=1'

* and run 'sudo dpkg -i libc6_2.7-9ubuntu2_amd64.deb'

Whew! If you did all steps right, you'll see something like below (it's Portuguese, i forgot to use LANG=C to get English text, anyway you dont need it too):

malloc: using debugging hooks
*** glibc detected *** sudo: free(): invalid pointer: 0x00007f88ac9e66c8 ***
*** glibc detected *** sudo: free(): invalid pointer: 0x00007f88ac9e6710 ***
(Lendo banco de dados ... 169973 arquivos e diretórios atualmente instalados.)
Preparando para substituir libc6 2.7-9ubuntu1 (usando libc6_2.7-9ubuntu2_amd64.deb) ...
Descompactando substituto libc6 ...
Instalando libc6 (2.7-9ubuntu2) ...

Hope that helps. (: