From 45f68cb8b4242f9a95732a4f94f9818fe4f3d94f Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:14:29 -0400 Subject: [PATCH 1/6] nhrpd: r is always < 0 at some points of if else statements Since r is always < 0 at the last if/else there is no point in testing for it. Signed-off-by: Donald Sharp --- nhrpd/zbuf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nhrpd/zbuf.c b/nhrpd/zbuf.c index 9cc2b56245..3d54f4ed50 100644 --- a/nhrpd/zbuf.c +++ b/nhrpd/zbuf.c @@ -89,7 +89,7 @@ ssize_t zbuf_read(struct zbuf *zb, int fd, size_t maxlen) zb->tail += r; else if (r == 0) r = -2; - else if (r < 0 && ERRNO_IO_RETRY(errno)) + else if (ERRNO_IO_RETRY(errno)) r = 0; return r; @@ -109,7 +109,7 @@ ssize_t zbuf_write(struct zbuf *zb, int fd) zbuf_reset(zb); } else if (r == 0) r = -2; - else if (r < 0 && ERRNO_IO_RETRY(errno)) + else if (ERRNO_IO_RETRY(errno)) r = 0; return r; @@ -128,7 +128,7 @@ ssize_t zbuf_recv(struct zbuf *zb, int fd) zb->tail += r; else if (r == 0) r = -2; - else if (r < 0 && ERRNO_IO_RETRY(errno)) + else if (ERRNO_IO_RETRY(errno)) r = 0; return r; } From 7aa77e557b133f3d745c012241fbad24e4b89ea0 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:16:21 -0400 Subject: [PATCH 2/6] ospf6d: cost is uint32_t so it cannot be greater than UINT32_MAX Remove the extra test. Signed-off-by: Donald Sharp --- ospf6d/ospf6_interface.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 2a503c6233..efa5d2b7ab 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -165,8 +165,6 @@ static uint32_t ospf6_interface_get_cost(struct ospf6_interface *oi) cost = (uint32_t)((double)refbw / (double)bw + (double)0.5); if (cost < 1) cost = 1; - else if (cost > UINT32_MAX) - cost = UINT32_MAX; } return cost; From 87472c69994290c8ffebb210df6b09d546471523 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:26:10 -0400 Subject: [PATCH 3/6] zebra: ret is always -1 or 0 at this point so remove the if test Remove the if test and cleanup the code to better align. Signed-off-by: Donald Sharp --- zebra/zebra_netns_id.c | 109 +++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 58 deletions(-) diff --git a/zebra/zebra_netns_id.c b/zebra/zebra_netns_id.c index 739ba33036..73d585c1a3 100644 --- a/zebra/zebra_netns_id.c +++ b/zebra/zebra_netns_id.c @@ -255,66 +255,59 @@ ns_id_t zebra_ns_id_get(const char *netnspath, int fd_param) } } - if (ret <= 0) { - if (errno != EEXIST && ret != 0) { - flog_err( - EC_LIB_SOCKET, - "netlink( %u) recvfrom() error 2 when reading: %s", - fd, safe_strerror(errno)); - close(sock); - if (netnspath) - close(fd); - if (errno == ENOTSUP) { - zlog_debug("NEWNSID locally generated"); - return zebra_ns_id_get_fallback(netnspath); - } - return NS_UNKNOWN; + if (errno != EEXIST && ret != 0) { + flog_err(EC_LIB_SOCKET, + "netlink( %u) recvfrom() error 2 when reading: %s", fd, + safe_strerror(errno)); + close(sock); + if (netnspath) + close(fd); + if (errno == ENOTSUP) { + zlog_debug("NEWNSID locally generated"); + return zebra_ns_id_get_fallback(netnspath); } - /* message to send to netlink : GETNSID */ - memset(buf, 0, NETLINK_SOCKET_BUFFER_SIZE); - nlh = initiate_nlh(buf, &seq, RTM_GETNSID); - rt = (struct rtgenmsg *)(buf + nlh->nlmsg_len); - nlh->nlmsg_len += NETLINK_ALIGN(sizeof(struct rtgenmsg)); - rt->rtgen_family = AF_UNSPEC; - - nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_FD, fd); - nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_NSID, - ns_id); - - ret = send_receive(sock, nlh, seq, buf); - if (ret < 0) { - close(sock); - if (netnspath) - close(fd); - return NS_UNKNOWN; - } - nlh = (struct nlmsghdr *)buf; - len = ret; - ret = 0; - do { - if (nlh->nlmsg_type >= NLMSG_MIN_TYPE) { - return_nsid = extract_nsid(nlh, buf); - if (return_nsid != NS_UNKNOWN) - break; - } else if (nlh->nlmsg_type == NLMSG_ERROR) { - struct nlmsgerr *err = - (struct nlmsgerr - *)((char *)nlh - + NETLINK_ALIGN(sizeof( - struct - nlmsghdr))); - if (err->error < 0) - errno = -err->error; - else - errno = err->error; - break; - } - len = len - NETLINK_ALIGN(nlh->nlmsg_len); - nlh = (struct nlmsghdr *)((char *)nlh - + NETLINK_ALIGN( - nlh->nlmsg_len)); - } while (len != 0 && ret == 0); + return NS_UNKNOWN; } + /* message to send to netlink : GETNSID */ + memset(buf, 0, NETLINK_SOCKET_BUFFER_SIZE); + nlh = initiate_nlh(buf, &seq, RTM_GETNSID); + rt = (struct rtgenmsg *)(buf + nlh->nlmsg_len); + nlh->nlmsg_len += NETLINK_ALIGN(sizeof(struct rtgenmsg)); + rt->rtgen_family = AF_UNSPEC; + + nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_FD, fd); + nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_NSID, ns_id); + + ret = send_receive(sock, nlh, seq, buf); + if (ret < 0) { + close(sock); + if (netnspath) + close(fd); + return NS_UNKNOWN; + } + nlh = (struct nlmsghdr *)buf; + len = ret; + ret = 0; + do { + if (nlh->nlmsg_type >= NLMSG_MIN_TYPE) { + return_nsid = extract_nsid(nlh, buf); + if (return_nsid != NS_UNKNOWN) + break; + } else if (nlh->nlmsg_type == NLMSG_ERROR) { + struct nlmsgerr *err = + (struct nlmsgerr *)((char *)nlh + + NETLINK_ALIGN(sizeof( + struct nlmsghdr))); + if (err->error < 0) + errno = -err->error; + else + errno = err->error; + break; + } + len = len - NETLINK_ALIGN(nlh->nlmsg_len); + nlh = (struct nlmsghdr *)((char *)nlh + + NETLINK_ALIGN(nlh->nlmsg_len)); + } while (len != 0 && ret == 0); if (netnspath) close(fd); From 0474ad9c7209a64bd54e34ef8ae17612406969b5 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:27:52 -0400 Subject: [PATCH 4/6] python: Remove redundant import of subprocess Signed-off-by: Donald Sharp --- python/tiabwarfo.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/tiabwarfo.py b/python/tiabwarfo.py index 265173e314..4a6cd6ad77 100644 --- a/python/tiabwarfo.py +++ b/python/tiabwarfo.py @@ -21,7 +21,6 @@ import os import subprocess import re import argparse -import subprocess import json structs = ['xref', 'xref_logmsg', 'xref_threadsched', 'xref_install_element', 'xrefdata', 'xrefdata_logmsg', 'cmd_element'] From 6fd04fda318284c9d4749c325bcb7d87b04db650 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:34:16 -0400 Subject: [PATCH 5/6] eigrpd: vrf variable name hides a parameter of the same name vrf is a char * being passed in. Rename the vrf to be something else. Signed-off-by: Donald Sharp --- eigrpd/eigrp_vty.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eigrpd/eigrp_vty.c b/eigrpd/eigrp_vty.c index 0809ac2cf0..3d61294b22 100644 --- a/eigrpd/eigrp_vty.c +++ b/eigrpd/eigrp_vty.c @@ -240,14 +240,14 @@ DEFPY (show_ip_eigrp_interfaces, struct eigrp *eigrp; if (vrf && strncmp(vrf, "all", sizeof("all")) == 0) { - struct vrf *vrf; + struct vrf *v; - RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { - eigrp = eigrp_lookup(vrf->vrf_id); + RB_FOREACH (v, vrf_name_head, &vrfs_by_name) { + eigrp = eigrp_lookup(v->vrf_id); if (!eigrp) continue; - vty_out(vty, "VRF %s:\n", vrf->name); + vty_out(vty, "VRF %s:\n", v->name); eigrp_interface_helper(vty, eigrp, ifname, detail); } From 00c89a3673af923353905a0a2a0321bc112be98c Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Jun 2022 15:38:15 -0400 Subject: [PATCH 6/6] lib: Function `crypt` does not need to be declared mid function Signed-off-by: Donald Sharp --- lib/command.c | 1 - lib/vty.c | 1 - 2 files changed, 2 deletions(-) diff --git a/lib/command.c b/lib/command.c index c4db045633..cbecc81574 100644 --- a/lib/command.c +++ b/lib/command.c @@ -429,7 +429,6 @@ static char *zencrypt(const char *passwd) { char salt[6]; struct timeval tv; - char *crypt(const char *, const char *); gettimeofday(&tv, 0); diff --git a/lib/vty.c b/lib/vty.c index e0e2f39229..92db07677a 100644 --- a/lib/vty.c +++ b/lib/vty.c @@ -382,7 +382,6 @@ static void vty_auth(struct vty *vty, char *buf) char *passwd = NULL; enum node_type next_node = 0; int fail; - char *crypt(const char *, const char *); switch (vty->node) { case AUTH_NODE: