Commit 92b05e72 by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/53510 (OOM while compile some code)

	PR middle-end/53510
	* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
	to avoid leaking memory.  No need to handle memory allocation
	failure.  Double string_len on each reallocation instead of
	adding 2.
	* gcov.c (read_line): Likewise.

From-SVN: r187952
parent 4f7f7aca
2012-05-29 Jakub Jelinek <jakub@redhat.com>
PR middle-end/53510
* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
to avoid leaking memory. No need to handle memory allocation
failure. Double string_len on each reallocation instead of
adding 2.
* gcov.c (read_line): Likewise.
2012-05-29 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
......
......@@ -2219,15 +2219,8 @@ read_line (FILE *file)
return string;
}
pos += len;
ptr = XNEWVEC (char, string_len * 2);
if (ptr)
{
memcpy (ptr, string, pos);
string = ptr;
string_len += 2;
}
else
pos = 0;
string = XRESIZEVEC (char, string, string_len * 2);
string_len *= 2;
}
return pos ? string : NULL;
......
/* Data and functions related to line maps and input files.
Copyright (C) 2004, 2007, 2008, 2009, 2010, 2011
Copyright (C) 2004, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -105,15 +105,8 @@ read_line (FILE *file)
return string;
}
pos += len;
ptr = XNEWVEC (char, string_len * 2);
if (ptr)
{
memcpy (ptr, string, pos);
string = ptr;
string_len += 2;
}
else
pos = 0;
string = XRESIZEVEC (char, string, string_len * 2);
string_len *= 2;
}
return pos ? string : NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment