From 970a75edcf46aad1d973aad93c0e1e9d36278a57 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 23 Jan 2009 21:59:22 +0000 Subject: [PATCH] Display a warning if we can't read the first line (column headers) of /proc/net/route. This also silences a _FORTIFY_SOURCE warning. --- tcpip.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tcpip.cc b/tcpip.cc index 4496a1b14..94d02ecb0 100644 --- a/tcpip.cc +++ b/tcpip.cc @@ -3019,7 +3019,16 @@ static struct sys_route *getsysroutes_proc(FILE *routefp, int *howmany) { ifaces = getinterfaces(&numifaces); routes = (struct sys_route *) safe_zalloc(route_capacity * sizeof(struct sys_route)); - (void) fgets(buf, sizeof(buf), routefp); /* Kill the first line (column headers) */ + + /* Kill the first line (column headers) */ + errno = 0; + if (fgets(buf, sizeof(buf), routefp) == NULL) { + if (errno) + error("Read error in /proc/net/route"); + else + error("Premature EOF in /proc/net/route"); + goto done; + } while(fgets(buf,sizeof(buf), routefp)) { p = strtok(buf, " \t\n"); if (!p) { @@ -3101,6 +3110,7 @@ static struct sys_route *getsysroutes_proc(FILE *routefp, int *howmany) { } } +done: *howmany = numroutes; return routes; }