libstdc++/6594: strstreambuf leaks 16 bytes - gcc 3.0.x

bkoz@gcc.gnu.org bkoz@gcc.gnu.org
Wed May 15 05:57:00 GMT 2002


Synopsis: strstreambuf leaks 16 bytes - gcc 3.0.x

Responsible-Changed-From-To: unassigned->bkoz
Responsible-Changed-By: bkoz
Responsible-Changed-When: Wed May 15 05:57:30 2002
Responsible-Changed-Why:
    Mine.
State-Changed-From-To: open->feedback
State-Changed-By: bkoz
State-Changed-When: Wed May 15 05:57:30 2002
State-Changed-Why:
    So it does....
    
    strstream.cc: 69 has
    
    strstreambuf::strstreambuf(streamsize initial_capacity)
      : _Base(),
        _M_alloc_fun(0), _M_free_fun(0),
        _M_dynamic(true), _M_frozen(false), _M_constant(false)
    {
      streamsize n = max(initial_capacity, streamsize(16));
    
      char* buf = _M_alloc(n);
      if (buf) {
        setp(buf, buf + n);
        setg(buf, buf, buf);
      }
    
    Wow. 
    
    Are you aware that this class has been deprecated by std::stringstream? You might consider using it instead.
    
    However, it turns out that the bug is pretty easy to fix. You might try this, and let me know how it goes. 
    
    2002-05-15  Benjamin Kosnik  <bkoz@redhat.com>
    
    	PR libstdc++/6594
    	* src/strstream.cc (strstreambuf): Fix leak.
    
    The patch is here:
    http://gcc.gnu.org/ml/gcc-patches/2002-05/msg01204.html
    
    best,
    benjamin

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6594



More information about the Gcc-bugs mailing list