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);