From: Vincent JARDIN Date: Wed, 27 Sep 2017 22:05:52 +0000 (+0200) Subject: ospf_packet: scan-build/clang clean up X-Git-Tag: frr-4.0-dev~252^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=89a48046dd5ce3c64bc3cbd9af85a10af8516d61;p=mirror%2Ffrr.git ospf_packet: scan-build/clang clean up get the code safer using snprintf(). --- diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index 36f9a6757a..0ab83c407f 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -4065,21 +4065,19 @@ void ospf_ls_ack_send_delayed(struct ospf_interface *oi) * punt-to-CPU set on them. This may overload the CPU control path that * can be avoided if the MAC was known apriori. */ -#define OSPF_PING_NBR_STR_MAX (8 + 40 + 20) +#define OSPF_PING_NBR_STR_MAX (BUFSIZ) void ospf_proactively_arp(struct ospf_neighbor *nbr) { char ping_nbr[OSPF_PING_NBR_STR_MAX]; - char *str_ptr; int ret; if (!nbr || !nbr->oi || !nbr->oi->ifp) return; - str_ptr = strcpy(ping_nbr, "ping -c 1 -I "); - str_ptr = strcat(str_ptr, nbr->oi->ifp->name); - str_ptr = strcat(str_ptr, " "); - str_ptr = strcat(str_ptr, inet_ntoa(nbr->address.u.prefix4)); - str_ptr = strcat(str_ptr, " > /dev/null 2>&1 &"); + snprintf(ping_nbr, sizeof(ping_nbr), + "ping -c 1 -I %s %s > /dev/null 2>&1 &", + nbr->oi->ifp->name, inet_ntoa(nbr->address.u.prefix4)); + ret = system(ping_nbr); if (IS_DEBUG_OSPF_EVENT) zlog_debug("Executed %s %s", ping_nbr,