[Bug 997359] Re: nih uses eglibc private symbol __abort_msg
Launchpad Bug Tracker
997359 at bugs.launchpad.net
Fri Nov 30 17:55:23 UTC 2012
This bug was fixed in the package apport - 2.6.3-0ubuntu1
---------------
apport (2.6.3-0ubuntu1) raring; urgency=low
* New upstream release. Changes since our previous snapshot:
- debian.py: Only reject reports with useless stack traces if the report
actually has a stack trace at all.
- debian.py: Fix UTF-8 string handling. Thanks Ritesh Raj Sarraf.
- debian.py: Fix crash on broken "Package" fields, as generated by current
Debian/Ubuntu dkms package.
- data/apport: Call fsync when writing upstart crash reports.
- report.py, add_gdb_info(): Handle libnih's assertion messages.
(LP: #997359)
- apport-gtk, apport-kde: Don't provide an option to restart a crashed
application when the crash occurred in a thread (LP: #1033902).
- apport-retrace: Disallow option -C without option -S. Thanks Kyle
Nitzsche.
- fileutils.py, mark_report_upload(): Refresh the .upload stamps if a
previous version of the report was already uploaded, but another
instance of the problem happened since then. Thanks Brian Murray. (LP:
#1084296)
- Ignore implausibly low addresses when computing
StacktraceAddressSignature. These are usually artifacts from gdb when
not having debug symbols, and having too many of them prevents proper
client-side duplicate detection and proper bucketing in daisy.
(LP: #1084996)
- fileutils.py: Ignore .desktop files with NoDisplay=true. (LP: #1048524)
* debian/tests/control: Run tests as root, just like before switching our
autopkgtests to run as user "ubuntu" by default. This enables a couple of
extra tests, and avoids some confusion because the distro and the user
name are identical.
* data/package-hooks/source_linux-nexus7.py: Fix PEP-8 error.
-- Martin Pitt <martin.pitt at ubuntu.com> Fri, 30 Nov 2012 18:00:01 +0100
** Changed in: apport (Ubuntu Raring)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to libnih in Ubuntu.
https://bugs.launchpad.net/bugs/997359
Title:
nih uses eglibc private symbol __abort_msg
Status in NIH Utility Library:
New
Status in “apport” package in Ubuntu:
Fix Released
Status in “libnih” package in Ubuntu:
Fix Released
Status in “apport” source package in Precise:
New
Status in “libnih” source package in Precise:
New
Status in “apport” source package in Quantal:
New
Status in “libnih” source package in Quantal:
New
Status in “apport” source package in Raring:
Fix Released
Status in “libnih” source package in Raring:
Fix Released
Bug description:
NIH uses the private eglibc '__abort_msg' symbol to save a string
explaining why nih_assert() failed. However, __abort_msg is not a
public symbol which causes problems when libc is upgraded - it
actually necessitates that for every libc upgrade on, for example,
Ubuntu systems the following has to happen:
1) eglibc is upgraded with a version set to <version>~foo
2) nih is rebuilt against the eglibc version
3) nih is upgraded.
4) the eglibc package is upgraded *again* to drop the ~foo.
The symbol can be made use of like this:
$ cat >foo.c<<EOF
int
main(int argc, char *argv[])
{
nih_log_set_priority (NIH_LOG_FATAL);
nih_assert (0 == 1);
exit (EXIT_SUCCESS);
}
EOF
$ gcc -std=gnu99 -g -Wall -pedantic -o foo foo.c `pkg-config --cflags --libs libnih`
$ ./foo
(null):nih_make_core.c:46: Assertion failed in main: 0 == 1
Aborted (core dumped)
$ gdb foo core.1597
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/james/src/c/foo...done.
[New LWP 1597]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `foo'.
Program terminated with signal 6, Aborted.
#0 0xb770d1b2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) p (char *)__abort_msg
$1 = 0x93fa098 "nih_make_core.c:46: Assertion failed in main: 0 == 1"
(gdb)
To manage notifications about this bug go to:
https://bugs.launchpad.net/libnih/+bug/997359/+subscriptions
More information about the foundations-bugs
mailing list