diff options
| author | Vincent JARDIN <vincent.jardin@6wind.com> | 2017-09-28 00:05:52 +0200 |
|---|---|---|
| committer | Vincent JARDIN <vincent.jardin@6wind.com> | 2017-10-02 09:14:03 +0200 |
| commit | 89a48046dd5ce3c64bc3cbd9af85a10af8516d61 (patch) | |
| tree | df32e399906a006a3816c33a34b432a5e664b507 | |
| parent | c31a793b486d0bc34e498fdf703fd7120afbecf0 (diff) | |
ospf_packet: scan-build/clang clean up
get the code safer using snprintf().
| -rw-r--r-- | ospfd/ospf_packet.c | 12 |
1 files changed, 5 insertions, 7 deletions
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, |
