From 92b1a0fa9e7b67c2d549498274e1f2902178fa12 Mon Sep 17 00:00:00 2001 From: Ganesh Ajjanagadde Date: Thu, 20 Aug 2015 22:12:40 -0400 Subject: [PATCH] ffserver: cast PID to int64_t before printing Unfortunately, there is no portable format specifier for PID's. Furthermore, it is not safe to assume pid_t <= 32 bit in size, see e.g http://unix.derkeiler.com/Mailing-Lists/AIX-L/2010-08/msg00008.html. Right now, it is ok to assume pid_t <= 32 bit in size, but this may change in the future. Also, this patch fixes warning due to lack of an appropriate cast from http://fate.ffmpeg.org/report.cgi?time=20150820233505&slot=x86-opensolaris-gcc4.3. Note that this method of handling pid_t is in line with what nginx does. Signed-off-by: Ganesh Ajjanagadde Signed-off-by: Michael Niedermayer --- ffserver.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ffserver.c b/ffserver.c index 5c8810af4d..8b6e441513 100644 --- a/ffserver.c +++ b/ffserver.c @@ -1936,7 +1936,7 @@ static void compute_status(HTTPContext *c) avio_printf(pb, "

Feed %s

", stream->filename); if (stream->pid) { - avio_printf(pb, "Running as pid %d.\n", stream->pid); + avio_printf(pb, "Running as pid %"PRId64".\n", (int64_t) stream->pid); #if defined(linux) { @@ -1945,8 +1945,8 @@ static void compute_status(HTTPContext *c) /* This is somewhat linux specific I guess */ snprintf(ps_cmd, sizeof(ps_cmd), - "ps -o \"%%cpu,cputime\" --no-headers %d", - stream->pid); + "ps -o \"%%cpu,cputime\" --no-headers %"PRId64"", + (int64_t) stream->pid); pid_stat = popen(ps_cmd, "r"); if (pid_stat) { @@ -3778,8 +3778,8 @@ static void handle_child_exit(int sig) uptime = time(0) - feed->pid_start; feed->pid = 0; fprintf(stderr, - "%s: Pid %d exited with status %d after %d seconds\n", - feed->filename, pid, status, uptime); + "%s: Pid %"PRId64" exited with status %d after %d seconds\n", + feed->filename, (int64_t) pid, status, uptime); if (uptime < 30) /* Turn off any more restarts */