Do not call strlen with NULL argument in libgcov.
authorMartin Liska <mliska@suse.cz>
Tue, 25 Jun 2019 11:49:36 +0000 (13:49 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 25 Jun 2019 11:49:36 +0000 (11:49 +0000)
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

libgcc/ChangeLog
libgcc/libgcov-driver-system.c

index 4b9a47071d45ace3a829a0fa47575e6b9c105431..a5896155bb490e7ec7d58b76b8d8320e8df88f08 100644 (file)
@@ -1,3 +1,8 @@
+2019-06-25  Martin Liska  <mliska@suse.cz>
+
+       * libgcov-driver-system.c (replace_filename_variables): Do not
+       call strlen with NULL argument.
+
 2019-06-25  Andrew Stubbs  <ams@codesourcery.com>
 
        * config/gcn/t-amdgcn (LIB2ADD): Add unwind-gcn.c.
index b5f3e89ebdc5d288f8135f5c27e180b34aeb3808..39dc62749d53056c4634cc49d8be39b3e40a411a 100644 (file)
@@ -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;