From: Donald Sharp Date: Tue, 5 Dec 2017 01:51:34 +0000 (-0500) Subject: bgpd, zebra: Use sscanf return value X-Git-Tag: frr-4.0-dev~108^2~2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=116e176d99e8dd5a586196feee3df3d8eebed0ee;p=matthieu%2Ffrr.git bgpd, zebra: Use sscanf return value Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index 30397f8487..8c9f9f65ca 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -2082,7 +2082,10 @@ static void *route_set_aggregator_as_compile(const char *arg) aggregator = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct aggregator)); - sscanf(arg, "%s %s", as, address); + if (sscanf(arg, "%s %s", as, address) != 2) { + XFREE(MTYPE_ROUTE_MAP_COMPILED, aggregator); + return NULL; + } aggregator->as = strtoul(as, NULL, 10); ret = inet_aton(address, &aggregator->address); diff --git a/zebra/ipforward_proc.c b/zebra/ipforward_proc.c index 2834eeeb9c..f823ec4384 100644 --- a/zebra/ipforward_proc.c +++ b/zebra/ipforward_proc.c @@ -42,6 +42,7 @@ static void dropline(FILE *fp) int ipforward(void) { + int ret = 0; FILE *fp; int ipforwarding = 0; char buf[10]; @@ -58,11 +59,11 @@ int ipforward(void) 1 => ip forwarding enabled 2 => ip forwarding off. */ if (fgets(buf, 6, fp)) - sscanf(buf, "Ip: %d", &ipforwarding); + ret = sscanf(buf, "Ip: %d", &ipforwarding); fclose(fp); - if (ipforwarding == 1) + if (ret == 1 && ipforwarding == 1) return 1; return 0; @@ -127,6 +128,7 @@ char proc_ipv6_forwarding[] = "/proc/sys/net/ipv6/conf/all/forwarding"; int ipforward_ipv6(void) { + int ret = 0; FILE *fp; char buf[5]; int ipforwarding = 0; @@ -137,9 +139,13 @@ int ipforward_ipv6(void) return -1; if (fgets(buf, 2, fp)) - sscanf(buf, "%d", &ipforwarding); + ret = sscanf(buf, "%d", &ipforwarding); fclose(fp); + + if (ret != 1) + return 0; + return ipforwarding; }