This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix spu-ld segfault


	* emultempl/spuelf.em (embedded_spu_file): Test for NULL path
	before calling base_name, not after.

Index: ld/emultempl/spuelf.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/spuelf.em,v
retrieving revision 1.10
diff -u -p -r1.10 spuelf.em
--- ld/emultempl/spuelf.em	6 Jul 2007 14:09:42 -0000	1.10
+++ ld/emultempl/spuelf.em	11 Jul 2007 22:55:29 -0000
@@ -345,19 +345,19 @@ embedded_spu_file (lang_input_statement_
   for (search = (lang_input_statement_type *) input_file_chain.head;
        search != NULL;
        search = (lang_input_statement_type *) search->next_real_file)
-    {
-      const char *infile = base_name (search->filename);
+    if (search->filename != NULL)
+      {
+	const char *infile = base_name (search->filename);
 
-      if (infile != NULL
-	  && strncmp (infile, "crtbegin", 8) == 0)
-	{
-	  if (infile[8] == 'S')
-	    flags = concat (flags, " -fPIC", NULL);
-	  else if (infile[8] == 'T')
-	    flags = concat (flags, " -fpie", NULL);
-	  break;
-	}
-    }
+	if (strncmp (infile, "crtbegin", 8) == 0)
+	  {
+	    if (infile[8] == 'S')
+	      flags = concat (flags, " -fPIC", NULL);
+	    else if (infile[8] == 'T')
+	      flags = concat (flags, " -fpie", NULL);
+	    break;
+	  }
+      }
 
   /* Use fork() and exec() rather than system() so that we don't
      need to worry about quoting args.  */

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]