From a0e8bd57426ba52a33f4dd74db731dce835fcf10 Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Fri, 17 Feb 2017 16:50:41 +1100 Subject: [PATCH] Cast pid_t to long for fprintf() pid_t is defined by POSIX to be a signed integer type, so the %u format is wrong. Cast to long and print with %ld - it is unlikely that any real-world system has pid_t bigger than long. --- source/irc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/irc.c b/source/irc.c index 59eb07f..9aa6bbe 100644 --- a/source/irc.c +++ b/source/irc.c @@ -1425,7 +1425,7 @@ FILE *t; void setup_pid(void) { #ifdef WANT_DETACH -pid_t pid; + pid_t pid; if (!do_check_pid) return; if ((pid = getpid())) @@ -1434,7 +1434,7 @@ pid_t pid; unlink(pidfile); if ((t = fopen(pidfile, "w"))) { - fprintf(t, "%u\n", pid); + fprintf(t, "%ld\n", (long)pid); fclose(t); } }