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

Bug#172995: libc6: all Gnome1 / Gtk1.2 apps die with SIGSEG since upgrade to libc6 2.3.1



At Sun, 15 Dec 2002 05:51:42 +0200 (EET),
Martin--b�ic Racine wrote:
> > > From this report, you also got another report's tracking number, where I include
> > > a gdb trace (sylpheed).  At least bother reading it, before saying that I did
> > > not include anything to justify this.
> > 
> > Did you mean #110091? The reason I ignored it is that the original report
> > mixes the issue with libc6 2.2.x and libc6 2.3.x.  If other applications
> > have the same behavior, I'm afraid it's not glibc but X11/GTK+1.2 problem.
> 
> Downgrading libc6 version fixes it, so it's a no brainer:  the problem is libc6
> 2.3.1, not xlib or gtk.

Your trace says: 

	#0  0x40521e92 in mallopt () from /lib/libc.so.6
	#1  0x40520e6a in free () from /lib/libc.so.6		<- 
	#2  0x40846f6f in _Xutf8DefaultDrawImageString () from	<-
	/usr/X11R6/lib/X11/locale/common/xomGeneric.so.2

So... I guess free() is double called, or so. Try below program with gdb:

	#include <stdlib.h>
	main()
	{
	        int *i = (int *)malloc(100);
	        free(i);
	        free(i);
	}

	gotom@celesta:~/tmp> gdb ./a.out
	(gdb) run
	Starting program: /home/gotom/tmp/a.out 
	Program received signal SIGSEGV, Segmentation fault.
	0x40095e65 in mallopt () from /lib/libc.so.6
	(gdb) bt
	#0  0x40095e65 in mallopt () from /lib/libc.so.6
	#1  0x40094e6a in free () from /lib/libc.so.6
	#2  0x08048447 in main () at test.c:6

I guess your libc upgrade expose a hidden application bug because
glibc malloc routine is changed partly from 2.2 to 2.3.
Could you track down the X11/GTK+1.2 memory handling behavior with gdb?

-- gotom



Reply to: