lexsup.c (parse_args): Check whether provided SONAME is empty
authorUlrich Drepper <drepper@gmail.com>
Mon, 30 Jun 2014 10:58:52 +0000 (06:58 -0400)
committerUlrich Drepper <drepper@gmail.com>
Mon, 30 Jun 2014 10:58:52 +0000 (06:58 -0400)
string.  If yes, warn and ignore it.  Don't overwrite valid SONAME
with empty string.

ld/ChangeLog
ld/lexsup.c

index f42d00bf1a019ebece7dab8de4e192979c236b6d..a903fc0596817c4e20e401fe37ef43d5f3badea2 100644 (file)
@@ -1,3 +1,9 @@
+2014-06-30  Ulrich Drepper  <drepper@gmail.com>
+
+       * lexsup.c (parse_args): Check whether provided SONAME is empty
+       string.  If yes, warn and ignore it.  Don't overwrite valid SONAME
+       with empty string.
+
 2014-06-26  Linda Zhang  <lindasc@qq.com>
 
        * emultempl/pe.em: Initialise insert_timestamp to true.
index a8c57d270b02715e9a2e72db6286c002c328c811..52b4fdb565c2e5818e1cefe7940db97906f9a9a8 100644 (file)
@@ -1107,7 +1107,11 @@ parse_args (unsigned argc, char **argv)
          break;
        case 'h':               /* Used on Solaris.  */
        case OPTION_SONAME:
-         command_line.soname = optarg;
+         if (optarg[0] == '\0' && command_line.soname
+             && command_line.soname[0])
+           einfo (_("%P: SONAME must not be empty string; keeping previous one\n"));
+         else
+           command_line.soname = optarg;
          break;
        case OPTION_SORT_COMMON:
          if (optarg == NULL
@@ -1443,6 +1447,12 @@ parse_args (unsigned argc, char **argv)
        }
     }
 
+  if (command_line.soname && command_line.soname[0] == '\0')
+    {
+      einfo (_("%P: SONAME must not be empty string; ignored\n"));
+      command_line.soname = NULL;
+    }
+
   while (ingroup)
     {
       lang_leave_group ();