summaryrefslogtreecommitdiff
path: root/libgcc/libgcov-driver-system.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-06-25 13:49:36 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-06-25 11:49:36 +0000
commite5ce4cbc72adbfc8284ed6998b7d36c9f50c1ef6 (patch)
tree9b9f10ab154d00d906d5f723bb773a64c7e4557d /libgcc/libgcov-driver-system.c
parentb1e86e33a284b6b385c3b8ade42f2f9acf582a45 (diff)
Do not call strlen with NULL argument in libgcov.
2019-06-25 Martin Liska <mliska@suse.cz> * libgcov-driver-system.c (replace_filename_variables): Do not call strlen with NULL argument. From-SVN: r272650
Diffstat (limited to 'libgcc/libgcov-driver-system.c')
-rw-r--r--libgcc/libgcov-driver-system.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libgcc/libgcov-driver-system.c b/libgcc/libgcov-driver-system.c
index b5f3e89ebdc..39dc62749d5 100644
--- a/libgcc/libgcov-driver-system.c
+++ b/libgcc/libgcov-driver-system.c
@@ -186,13 +186,14 @@ replace_filename_variables (char *filename)
/* Concat beginning of the path, replacement and
ending of the path. */
unsigned end = length - (p - filename);
- unsigned repl_length = strlen (replacement);
+ unsigned repl_length = replacement != NULL ? strlen (replacement) : 0;
char *buffer = (char *)xmalloc (start + end + repl_length + 1);
char *buffer_ptr = buffer;
buffer_ptr = (char *)memcpy (buffer_ptr, filename, start);
buffer_ptr += start;
- buffer_ptr = (char *)memcpy (buffer_ptr, replacement, repl_length);
+ if (replacement != NULL)
+ buffer_ptr = (char *)memcpy (buffer_ptr, replacement, repl_length);
buffer_ptr += repl_length;
buffer_ptr = (char *)memcpy (buffer_ptr, p, end);
buffer_ptr += end;