[Bug libstdc++/47921] New: pbump will overflow when input n is larger than 2G-1

2011-02-28 Thread RobertPython at 163 dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47921

   Summary: pbump will overflow when input n is larger than 2G-1
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: robertpyt...@163.com
Target: x86_64-redhat-linux
 Build: gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)


in function int basic_streambuf::pbump(int n), n is a int which is easily
overflow in 64bit environment, especially when it is called in overflow
function.


[Bug libstdc++/47921] pbump will overflow when input n is larger than 2G-1

2011-02-28 Thread RobertPython at 163 dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47921

--- Comment #1 from Robert Python  2011-02-28 
10:51:30 UTC ---
try below program in a 64bit environment with about 8G memory:

#include 
#include 
#include 

#define N 1
#define SIZE 40

using namespace std;

int main()
{
const char msg[SIZE] = "aaa";
strstreambuf *new_data = new strstreambuf();
for (int i = 0; i < N; ++i)
{
new_data->freeze(false);
new_data->sputn(msg, SIZE);
}

delete new_data;
return 0;
}