GNOME Bugzilla – Bug 520266
Crash when viewing glibc manual
Last modified: 2008-08-30 11:25:09 UTC
Steps to reproduce: 1. Run 'yelp info:libc' Stack trace: $ gdb yelp (no debugging symbols found) Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1". (gdb) run info:libc Starting program: /usr/bin/yelp info:libc (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 0xb60696c0 (LWP 6615)] [New Thread 0xb5b6db90 (LWP 6618)] [New Thread 0xb515bb90 (LWP 6619)] [New Thread 0xb4959b90 (LWP 6620)] [New Thread 0xb4158b90 (LWP 6629)] ***MEMORY-ERROR***: yelp[6615]: GSlice: assertion failed: sinfo->n_allocated > 0 Program received signal SIGABRT, Aborted.
+ Trace 191240
Thread 3029703568 (LWP 6620)
(gdb) quit The program is running. Exit anyway? (y or n) y Other information:
Better backtrace:
+ Trace 191242
I'm not sure, but this might be a rarian problem when the info file is not found (there is no libc info file on my system, so I'm getting the same result with whatever non-existent name I put after info). (gdb) run info:libc Starting program: /opt/gnome2/bin/yelp info:libc [Thread debugging using libthread_db enabled] [New Thread 0xb5dfc720 (LWP 20216)] [New Thread 0xb584fb90 (LWP 20219)] [New Thread 0xb43a8b90 (LWP 20222)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5dfc720 (LWP 20216)] 0xb6f9c94d in rrn_info_find_from_uri (uri=0x842615d "libc", section=0x0) at rarian-info.c:623 623 return best_result->reg;
Here is the corresponding rarian bug: https://bugs.freedesktop.org/show_bug.cgi?id=15274 Sam, could you check that the file /usr/share/info/libc.info.gz exists on the system where you can reproduce the crash?
Yes, /usr/share/info/libc.info.gz does exist.
The real problem here is that yelp-info-parser.c:process_page allocates tree iters with g_malloc and then stuffs them in a hash table that later frees them with gtk_tree_iter_free, which uses g_slice_free.
Created attachment 116568 [details] [review] Patch for crash This problem was reproducible for me when running under valgrind. With this patch, it is no longer reproducible. Is this OK to commit?
Taking silence as approval, I've now commited this as http://svn.gnome.org/viewvc/yelp?view=revision&revision=3181