This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libstdc++/5451: std::streambuf::sungetc and sputbackc cause programm to crash on exit when eof was reached



>Number:         5451
>Category:       libstdc++
>Synopsis:       std::streambuf::sungetc and sputbackc cause programm to crash on exit when eof was reached
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 22 02:56:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     jens.thiele@student.uni-tuebingen.de
>Release:        gcc 2.95.2
>Organization:
>Environment:
debian gnu/linux potato (with some updates)
glibc 2.1.3
>Description:
gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)

(Also tested:
 gcc -v
 Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
 gcc version 2.95.4 20011006 (Debian prerelease)

 fixed in gcc 3.0.3.
)

Systems:
debian gnu/linux potato (with some updates)
glibc 2.1.3

debian gnu/linux unstable
glibc 2.2.4


Related bugs ?
first i thought bug #2440 might be related


 > g++ -Wall -ansi -pedantic --save-temps bug.cpp -o bug
bug.cpp: In function `int main()':
bug.cpp:11: warning: unused variable `streamsize r'
 > ./bug 
Segmentation fault
 > g++ -Wall -ansi -pedantic --save-temps bug.cpp -o bug -lefence
bug.cpp: In function `int main()':
bug.cpp:11: warning: unused variable `streamsize r'
 > gdb ./bug
[...]
Starting program: /home/jens/develop/dope3/bugreport/./bug 
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...

  Electric Fence 2.0.5 Copyright (C) 1987-1998 Bruce Perens.

ElectricFence Aborting: free(40014000): address not from malloc().
(no debugging symbols found)...(no debugging symbols found)...
Program received signal SIGILL, Illegal instruction.
0x400a4921 in kill () from /lib/libc.so.6
(gdb) i s
#0  0x400a4921 in kill () from /lib/libc.so.6
#1  0x40020c56 in EF_Abort () from /usr/lib/libefence.so.0
#2  0x400205e1 in free () from /usr/lib/libefence.so.0
#3  0x400d2f31 in _IO_default_finish () from /lib/libc.so.6
#4  0x4004434e in streambuf::~streambuf () from /usr/lib/libstdc++-libc6.1-2.so.3
#5  0x4003f17a in filebuf::~filebuf () from /usr/lib/libstdc++-libc6.1-2.so.3
#6  0x400538fa in ifstream::~ifstream () from /usr/lib/libstdc++-libc6.1-2.so.3
#7  0x8048777 in main ()
#8  0x4009ea42 in __libc_start_main () from /lib/libc.so.6
(gdb) 


file bug.cpp:

#include <fstream>

#define TOMUCH 1000
int main()
{
  // read from any stream until eof
  std::ifstream i("bug.cpp");
  std::streambuf &s=*i.rdbuf();
  char cb[TOMUCH];
  std::streamsize r=s.sgetn(cb,TOMUCH);
  // this is the problem
  // if you unget when previously get failed due to eof
  s.sungetc();
  // this would trigger the same problem
  // s.sputbackc('A');
  // and i think the real problem is pbackfail (_IO_default_pbackfail (genops.c))
  // which they call both
}

>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/gzip; name="bug.ii.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.ii.gz"

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]