Ralf Wildenhues wrote:
> * Charles Wilson wrote on Sun, Feb 21, 2010 at 06:34:02AM CET:
>> So, open issues, to be addressed if necessary in additional patches:
>> 1) "(func) ..." ---> '"(%s) ...", __func__' ?
>> 2) chmod in cwrapper.at?
> 
> Naah, ignore both.  Thanks.
> 
> strerror(errno) can return NULL for unknown errors on some systems.
> Not sure this can happen in practice here, wrapping in nonnull () should
> be a safe stopgap however.  Patch to this end preapproved.

Pushed.

2010-02-21  Charles Wilson  <...>

        Guard against strerror()==NULL
        * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src:main):
        Check return value of strerror() using nonnull().
        (func_emit_cwrapperexe_src:find_executable): Ditto.
        (func_emit_cwrapperexe_src:chase_symlinks): Ditto.

--
Chuck
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 043d980..56b7497 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -3192,7 +3192,7 @@ EOF
       /* failed to start process */
       lt_debugprintf (__FILE__, __LINE__,
 		      "(main) failed to launch target \"%s\": %s\n",
-		      lt_argv_zero, strerror (errno));
+		      lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3348,7 +3348,7 @@ find_executable (const char *wrapper)
 		  /* empty path: current directory */
 		  if (getcwd (tmp, LT_PATHMAX) == NULL)
 		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-                              strerror (errno));
+                              nonnull (strerror (errno)));
 		  tmp_len = strlen (tmp);
 		  concat_name =
 		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3373,7 +3373,8 @@ find_executable (const char *wrapper)
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", strerror (errno));
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3425,7 +3426,7 @@ chase_symlinks (const char *pathspec)
 	{
 	  lt_fatal (__FILE__, __LINE__,
 		    "error accessing file \"%s\": %s",
-		    tmp_pathspec, strerror (errno));
+		    tmp_pathspec, nonnull (strerror (errno)));
 	}
     }
   XFREE (tmp_pathspec);

Reply via email to