[hackers] [dwm] util.c: output function might override errno and thus affect perror() || Hiltjo Posthuma

From: <git_AT_suckless.org>
Date: Sun, 27 Oct 2024 20:10:48 +0100 (CET)

commit fcb2476b693ca4c40ad32c7119e27bbeb856865c
Author: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
AuthorDate: Sun Oct 27 20:10:07 2024 +0100
Commit: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
CommitDate: Sun Oct 27 20:10:07 2024 +0100

    util.c: output function might override errno and thus affect perror()
    
    Original patch by Raymond Cole with some modifications, thanks!

diff --git a/util.c b/util.c
index 96b82c9..8e26a51 100644
--- a/util.c
+++ b/util.c
_AT_@ -1,4 +1,5 @@
 /* See LICENSE file for copyright and license details. */
+#include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
_AT_@ -10,17 +11,17 @@ void
 die(const char *fmt, ...)
 {
         va_list ap;
+ int saved_errno;
+
+ saved_errno = errno;
 
         va_start(ap, 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(saved_errno));
+ fputc('\n', stderr);
 
         exit(1);
 }
Received on Sun Oct 27 2024 - 20:10:48 CET

This archive was generated by hypermail 2.3.0 : Sun Oct 27 2024 - 20:12:38 CET