[libavg-devel] Ubuntu 8.04: libavg SIGSEGV on pyscript termination
Ulrich von Zadow
uzadow at libavg.de
Sat Jun 7 23:04:30 CEST 2008
Hi,
we are not the only ones with this problem:
http://ubuntuforums.org/showthread.php?t=762228
OXullo Intersecans wrote:
> On Ubuntu 8.04 libavg causes segmentation faults at *each* script exit.
> This is due to libselinux1 which is the apparent responsible of the
> problem.
>
> Workaround at tail.
>
>
> Simplest testcase:
>
> 1. install python-libavg w/ deps (packaged hardy/universe or svn r:2885)
> 2. from python cli:
> >>> import libavg
> >>> CTRL-D
>
>
> distro: Ubuntu hardy heron / 8.04
> arch: both i386 (Intel core duo) and amd64 (AMD Athlon64 X2)
>
> libselinux1:
> Installed: 2.0.55-0ubuntu4
> Candidate: 2.0.55-0ubuntu4
> Version table:
> 2.0.55-0ubuntu4 0
> 500 http://de.archive.ubuntu.com hardy/main Packages
> *** 2.0.55-0ubuntu4 0
> 100 /var/lib/dpkg/status
>
> python-libavg:
> Installed: 0.7.0-4ubuntu1
> Candidate: 0.7.0-4ubuntu1
> Version table:
> *** 0.7.0-4ubuntu1 0
> 500 http://de.archive.ubuntu.com hardy/universe Packages
> 100 /var/lib/dpkg/status
>
> Valgrind reports:
>
> =29183== Invalid read of size 8
> ==29183== at 0xE29B9DD: fini_context_translations (setrans_client.c:211)
> ==29183== by 0xE28F1F1: (within /lib/libselinux.so.1)
> ==29183== by 0xE29D040: (within /lib/libselinux.so.1)
> ==29183== by 0x570010F: exit (exit.c:75)
> ==29183== by 0x56E91CA: (below main) (libc-start.c:252)
> ==29183== Address 0x80 is not stack'd, malloc'd or (recently) free'd
> ==29183==
> ==29183== Process terminating with default action of signal 11
> (SIGSEGV): dumping core
> ==29183== Access not within mapped region at address 0x80
> ==29183== at 0xE29B9DD: fini_context_translations (setrans_client.c:211)
> ==29183== by 0xE28F1F1: (within /lib/libselinux.so.1)
> ==29183== by 0xE29D040: (within /lib/libselinux.so.1)==29183== by
> 0x570010F: exit (exit.c:75)
> ==29183== by 0x56E91CA: (below main) (libc-start.c:252)
>
> gdb says:
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7f3af10916e0 (LWP 15047)]
> 0x00007f3ae812a9dd in fini_context_translations () at setrans_client.c:
> 211
> 211 free(prev_r2t_trans);
> (gdb) bt
> #0 0x00007f3ae812a9dd in fini_context_translations () at
> setrans_client.c:211
> #1 0x00007f3ae811e1f2 in __do_global_dtors_aux () from /lib/
> libselinux.so.1
> #2 0x00007ffff9097700 in ?? ()
> #3 0x00007f3ae812c041 in _fini () from /lib/libselinux.so.1
> #4 0x00007ffff9097700 in ?? ()
> #5 0x00007f3af0e88796 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>
>
> NOTES:
>
> src/setrans_client.c:209 (libselinux1-2.0.55 source)
> --------------------------------------
> hidden void fini_context_translations(void)
> {
> free(prev_r2t_trans);
> free(prev_r2t_raw);
> free(prev_t2r_trans);
> free(prev_t2r_raw);
> }
>
> This function is called at exit, libselinux patches every execve().
> Without selinux package this low-level framework seems to be quite
> useless, but still unremovable, due to several dependencies and kernel
> design (I suppose. Any clues?)
> Any line of code contained in this function causes segfault, don't be
> fouled by a simple free() fuss.
>
>
> **** Workaround: disable SETRANS
>
> $ apt-get source libselinux1
> $ cd libselinux-2.0.55
> $ DISABLE_SETRANS=y dpkg-buildpackage -rfakeroot -uc -b
> $ cd ..
> $ sudo dpkg -i libselinux1_2.0.55-0ubuntu4_amd64.deb (or i386 one)
>
> ( launchpad ref: https://bugs.launchpad.net/ubuntu/+source/libselinux/+bug/237156
> )
>
>
>
> --
> OXullo Intersecans
>
> 0 2 L > Outside Standing Level
> http://www.02L.net
>
>
>
>
>
> _______________________________________________
> libavg-devel mailing list
> libavg-devel at datenhain.de
> https://mail.datenhain.de/mailman/listinfo/libavg-devel
>
--
Any technology distinguishable from magic is insufficiently advanced.
Ulrich von Zadow | +49-172-7872715
Jabber: cocacoder at jabber.berlin.ccc.de
Skype: uzadow
More information about the libavg-devel
mailing list