public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jason dot vas dot dias at gmail dot com" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sources.redhat.com
Subject: [Bug libc/10071] 2.9.90 (2009-04-14) libio/genops.c : __underflow() does not handle NULL FP
Date: Wed, 15 Apr 2009 00:14:00 -0000	[thread overview]
Message-ID: <20090415001403.10044.qmail@sourceware.org> (raw)
In-Reply-To: <20090414185756.10071.jason.vas.dias@gmail.com>


------- Additional Comments From jason dot vas dot dias at gmail dot com  2009-04-15 00:14 -------
Thanks for the response - sorry for not submitting a test case,
but I usually report a bug without a detailed test case first
to see if is a "known problem" and then submit a detailed test
case if it is not - which I am now doing.

BTW - RE: Comment #1 - you state:
 > provide a test case for a sane environment or stick with a distribution
 >
Are you suggesting that linux-2.6.30 + gcc-4.3.4 + binutils-2.19.51.20090412
does not constitute a "sane environment" ? If so, in what way ? Is the glibc 
in the CVS root `:pserver:anoncvs@sources.redhat.com:/cvs/glibc' not meant
to be built under any system other than a Red Hat one ? If so, this should
be stated clearly in the documentation at :
  http://www.gnu.org/software/libc/resources.html
which lists the above CVS root as the primary CVS source for GLIBC . 
I've set up different chroot environments for testing of my software, 
which I do not release until all test cases pass under each chroot 
environment:
  o LATEST of EVERTHING - originally gentoo 2008-02 based
    - this is the one which now has glibc-2.9.90 20090414 installed. 
    It also has multiple versions of GCC and binutils installed so I
    can test older versions against later dependency installations.
  o FC-11     o FC-10   o FC-8  o FC-6
  o RHEL-5    o RHEL-4  o RHEL-3
  o SuSe      o debian  o mandriva  o ubuntu
  o Solaris X86   o FreeBSD   o NetBSD
I try to report all bug reports found - is this somehow wrong to do ?

OK, so here's the test case :

TEST CASE
~~~~~~~~~

Environment:

gcc-4.3.4 ( svn 2009-04-09T00:16:16.646518Z )
binutils  ( CVS 2009-04-13, 2.19.51.20090412)
gtk-2.14.8 & all dependencies rebuilt as of 2000-04-01
Xorg @ 2009-04-01 : EVERYTHING under git://git.freedesktop.org/xorg rebuilt.

The AT&T AST SFIO and vmalloc packages rebuilt and installed from 
http://www.research.att.com/~gsf/download/tgz/sfio.2005-02-01.tgz,
with "posix_memalign" added to vmalloc (source available on request).

#include <gtk/gtk.h>
int main(int argc, char **argv, char **envp)
{
    gtk_init(&argc, &argv);
    GtkWidget *main_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    GtkWidget *label    = gtk_label_new("It Works!");
    gtk_container_add(GTK_CONTAINER(main_win),label);
    g_signal_connect (G_OBJECT (main_win), "delete_event",
                      G_CALLBACK (gtk_widget_destroy), main_win);
    g_signal_connect (G_OBJECT (main_win), "destroy",
                      G_CALLBACK (gtk_main_quit), NULL);
    gtk_widget_show_all(main_win);
    gtk_main();
    return(0);
}' > tgtk.c
$ gcc -o tgtk tgtk.c -I${DS_DIR} -L${DS_DIR} \
-I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2
-I/usr/include/libpng12 \
-Wl,--whole-archive,--export-dynamic /usr/ds_bin/libstdio.a
/usr/ds_bin/libsfio.a /usr/ds_bin/libvmalloc.a -Wl,--no-whole-archive
-lgtk-x11-2.0 -lgio-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo
-lpangoft2-1.0 -latk-1.0 -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
-lfreetype -lfontconfig -lcrypt -lresolv -lrt -lpthread -ldl -lc
-Wl,-R,/home/jason/DayGUI:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.4

$ gdb ./tgtk
GNU gdb 6.8.0.20090412-cvs
Copyright (C) 2008 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 "x86_64-pc-linux-gnu"...
(gdb) start
Breakpoint 1 at 0x4231b0
Starting program: /home/jason/D/tGtk/tgtk
[Thread debugging using libthread_db enabled]
[New Thread 0x7f1434a07790 (LWP 10561)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f1434a07790 (LWP 10561)]
*__GI___underflow (fp=<value optimized out>) at genops.c:361
361       return _IO_UNDERFLOW (fp);
(gdb) quit


Now, if I replace the new glibc-2.9.90-20090414 files with those from
glibc-2.9.90-20090320 , and repeat the test case, the above problem does not
occur, and a gtk window displays the string "It Works!" when run .

Yes, this problem is something to do with including the SFIO packages, and
I can sort this out myself.

But ONLY an install of the new glibc is necessary to trigger the problem -
all other software remains unchanged.

So what changed in glibc between 20090320 and 20090414 that would cause these
SFIO glibc function overrides to cause a SIGSEGV in _start ( GI__underflow ) ?

This is what I am now investigating - any assistance or suggestions 
that the GLIBC developers might make would be most gratefully received.

But IMHO it is a bug that GI__underflow() does not detect a NULL fp argument -
if it did, it could use the new libunwind support to print a stack backtrace
that might greatly help track down the root cause of this problem.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |NEW


http://sourceware.org/bugzilla/show_bug.cgi?id=10071

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


  parent reply	other threads:[~2009-04-15  0:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-14 18:58 [Bug libc/10071] New: " jason dot vas dot dias at gmail dot com
2009-04-14 19:01 ` [Bug libc/10071] " jason dot vas dot dias at gmail dot com
2009-04-14 19:08 ` drepper at redhat dot com
2009-04-15  0:14 ` jason dot vas dot dias at gmail dot com [this message]
2009-04-15 11:11 ` pasky at suse dot cz
2009-04-19  7:28 ` jason dot vas dot dias at gmail dot com
2009-04-19  8:46 ` jason dot vas dot dias at gmail dot com
     [not found] <bug-10071-131@http.sourceware.org/bugzilla/>
2014-07-01  7:07 ` fweimer at redhat dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090415001403.10044.qmail@sourceware.org \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=glibc-bugs@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).