* fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.

From-SVN: r264293
This commit is contained in:
Bernd Edlinger 2018-09-13 22:00:56 +00:00 committed by Jeff Law
parent 5ec9f8cff3
commit 84b5706abb
2 changed files with 6 additions and 0 deletions

View file

@ -1,5 +1,7 @@
2018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
* fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.
* varasm.c (compare_constant): Compare type size of STRING_CSTs.
(get_constant_size): Don't make STRING_CSTs larger than they are.
(check_string_literal): New check function for STRING_CSTs.

View file

@ -14611,6 +14611,10 @@ c_getstr (tree src, unsigned HOST_WIDE_INT *strlen /* = NULL */,
const char *string = TREE_STRING_POINTER (src);
/* Ideally this would turn into a gcc_checking_assert over time. */
if (string_length > string_size)
string_length = string_size;
if (string_length == 0
|| offset >= string_size)
return NULL;