Commit 84b5706a by Bernd Edlinger Committed by Jeff Law

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

From-SVN: r264293
parent 5ec9f8cf
2018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> 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. * varasm.c (compare_constant): Compare type size of STRING_CSTs.
(get_constant_size): Don't make STRING_CSTs larger than they are. (get_constant_size): Don't make STRING_CSTs larger than they are.
(check_string_literal): New check function for STRING_CSTs. (check_string_literal): New check function for STRING_CSTs.
......
...@@ -14611,6 +14611,10 @@ c_getstr (tree src, unsigned HOST_WIDE_INT *strlen /* = NULL */, ...@@ -14611,6 +14611,10 @@ c_getstr (tree src, unsigned HOST_WIDE_INT *strlen /* = NULL */,
const char *string = TREE_STRING_POINTER (src); 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 if (string_length == 0
|| offset >= string_size) || offset >= string_size)
return NULL; return 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