gcc.c (set_multilib_dir): Malloc "." pointer as well.
authorPaul Gortmaker <paul.gortmaker@windriver.com>
Wed, 25 Jun 2014 21:21:12 +0000 (21:21 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 25 Jun 2014 21:21:12 +0000 (15:21 -0600)
2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
            Jakub Jelinek  <jakub@redhat.com>

        * gcc.c (set_multilib_dir): Malloc "." pointer as well.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r211997

gcc/ChangeLog
gcc/gcc.c

index fba575e..48d6f22 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.c (set_multilib_dir): Malloc "." pointer as well.
+
 2014-06-25  Tom de Vries  <tom@codesourcery.com>
 
        * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
index 9ac18e6..168acf7 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -7790,10 +7790,15 @@ set_multilib_dir (void)
                q2++;
              if (*q2 == ':')
                ml_end = q2;
-             new_multilib_os_dir = XNEWVEC (char, ml_end - q);
-             memcpy (new_multilib_os_dir, q + 1, ml_end - q - 1);
-             new_multilib_os_dir[ml_end - q - 1] = '\0';
-             multilib_os_dir = *new_multilib_os_dir ? new_multilib_os_dir : ".";
+             if (ml_end - q == 1)
+               multilib_os_dir = xstrdup (".");
+             else
+               {
+                 new_multilib_os_dir = XNEWVEC (char, ml_end - q);
+                 memcpy (new_multilib_os_dir, q + 1, ml_end - q - 1);
+                 new_multilib_os_dir[ml_end - q - 1] = '\0';
+                 multilib_os_dir = new_multilib_os_dir;
+               }
 
              if (q2 < end && *q2 == ':')
                {