Code

error: Actually check for strerror in configure and fix GNU-specific code.
authorSebastian Harl <sh@tokkee.org>
Tue, 13 Dec 2016 22:34:36 +0000 (23:34 +0100)
committerSebastian Harl <sh@tokkee.org>
Tue, 13 Dec 2016 22:34:36 +0000 (23:34 +0100)
D'oh!

configure.ac
src/utils/error.c

index 521f0ac..4d7ccae 100644 (file)
@@ -446,6 +446,9 @@ if test "x$have_struct_ucred" != "xyes"; then
        AC_MSG_RESULT([$have_struct_ucred])
 fi
 
+dnl Only check this after potentially defining _GNU_SOURCE.
+AC_FUNC_STRERROR_R
+
 dnl Testing.
 PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],
                [unit_tests="yes"], [unit_tests="no"])
index f0a4827..6d23c6b 100644 (file)
@@ -298,10 +298,12 @@ sdb_error_parse_priority(char *prio)
 char *
 sdb_strerror(int errnum, char *strerrbuf, size_t buflen)
 {
+       *strerrbuf = '\0';
+
 #if STRERROR_R_CHAR_P
        {
                char *tmp = strerror_r(errnum, strerrbuf, buflen);
-               if (*strerrbuf = '\0') {
+               if (*strerrbuf == '\0') {
                        if (tmp && (tmp != strerrbuf) && (*tmp != '\0'))
                                strncpy(strerrbuf, tmp, buflen);
                        else