fputc() might set errno and thus affect perror().
---
 util.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/util.c b/util.c
index 96b82c9..a289160 100644
--- a/util.c
+++ b/util.c
@@ -1,4 +1,5 @@
 /* See LICENSE file for copyright and license details. */
+#include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -15,12 +16,9 @@ die(const char *fmt, ...)
        vfprintf(stderr, fmt, ap);
        va_end(ap);
 
-       if (fmt[0] && fmt[strlen(fmt)-1] == ':') {
-               fputc(' ', stderr);
-               perror(NULL);
-       } else {
-               fputc('\n', stderr);
-       }
+       if (fmt[0] && fmt[strlen(fmt)-1] == ':')
+               fprintf(stderr, " %s", strerror(errno));
+       fputc('\n', stderr);
 
        exit(1);
 }
-- 
2.46.2


Reply via email to