diff options
-rw-r--r-- | bfdd/dplane.c | 2 | ||||
-rw-r--r-- | bgpd/bgp_aspath.c | 3 | ||||
-rw-r--r-- | bgpd/bgp_attr.c | 3 | ||||
-rw-r--r-- | bgpd/bgp_evpn_mh.c | 8 | ||||
-rw-r--r-- | bgpd/bgp_mpath.c | 3 | ||||
-rw-r--r-- | bgpd/bgp_nht.c | 2 | ||||
-rw-r--r-- | bgpd/bgp_route.c | 13 | ||||
-rw-r--r-- | bgpd/bgp_routemap_nb_config.c | 4 | ||||
-rw-r--r-- | bgpd/bgp_updgrp_adv.c | 3 | ||||
-rw-r--r-- | bgpd/bgp_vty.c | 11 | ||||
-rw-r--r-- | bgpd/bgpd.c | 3 | ||||
-rw-r--r-- | lib/buffer.c | 24 | ||||
-rw-r--r-- | lib/csv.c | 3 | ||||
-rw-r--r-- | lib/link_state.c | 12 | ||||
-rw-r--r-- | lib/network.c | 3 | ||||
-rw-r--r-- | lib/ntop.c | 14 | ||||
-rw-r--r-- | lib/prefix.c | 3 | ||||
-rw-r--r-- | lib/sockopt.c | 16 | ||||
-rw-r--r-- | lib/stream.c | 8 | ||||
-rw-r--r-- | lib/zclient.c | 4 | ||||
-rw-r--r-- | tools/coccinelle/xcalloc-xmalloc.cocci | 17 |
21 files changed, 89 insertions, 70 deletions
diff --git a/bfdd/dplane.c b/bfdd/dplane.c index 6fb301d46..4b7f9ba7a 100644 --- a/bfdd/dplane.c +++ b/bfdd/dplane.c @@ -651,8 +651,6 @@ static struct bfd_dplane_ctx *bfd_dplane_ctx_new(int sock) struct bfd_dplane_ctx *bdc; bdc = XCALLOC(MTYPE_BFDD_DPLANE_CTX, sizeof(*bdc)); - if (bdc == NULL) - return NULL; bdc->sock = sock; bdc->inbuf = stream_new(BFD_DPLANE_CLIENT_BUF_SIZE); diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c index 25109e030..3c67017dc 100644 --- a/bgpd/bgp_aspath.c +++ b/bgpd/bgp_aspath.c @@ -193,7 +193,8 @@ static struct assegment *assegment_prepend_asns(struct assegment *seg, if (num >= AS_SEGMENT_MAX) return seg; /* we don't do huge prepends */ - if ((newas = assegment_data_new(seg->length + num)) == NULL) + newas = assegment_data_new(seg->length + num); + if (newas == NULL) return seg; for (i = 0; i < num; i++) diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index 2f0751a5f..1bf48b225 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -3317,7 +3317,8 @@ bgp_attr_parse_ret_t bgp_attr_parse(struct peer *peer, struct attr *attr, } /* Check all mandatory well-known attributes are present */ - if ((ret = bgp_attr_check(peer, attr)) < 0) + ret = bgp_attr_check(peer, attr); + if (ret < 0) goto done; /* diff --git a/bgpd/bgp_evpn_mh.c b/bgpd/bgp_evpn_mh.c index 4b90937f6..34094a0bd 100644 --- a/bgpd/bgp_evpn_mh.c +++ b/bgpd/bgp_evpn_mh.c @@ -1311,7 +1311,7 @@ static void bgp_evpn_es_vtep_re_eval_active(struct bgp *bgp, bool old_active; bool new_active; - old_active = !!CHECK_FLAG(es_vtep->flags, BGP_EVPNES_VTEP_ACTIVE); + old_active = CHECK_FLAG(es_vtep->flags, BGP_EVPNES_VTEP_ACTIVE); /* currently we need an active EVI reference to use the VTEP as * a nexthop. this may change... */ @@ -1320,7 +1320,7 @@ static void bgp_evpn_es_vtep_re_eval_active(struct bgp *bgp, else UNSET_FLAG(es_vtep->flags, BGP_EVPNES_VTEP_ACTIVE); - new_active = !!CHECK_FLAG(es_vtep->flags, BGP_EVPNES_VTEP_ACTIVE); + new_active = CHECK_FLAG(es_vtep->flags, BGP_EVPNES_VTEP_ACTIVE); if ((old_active != new_active) || (new_active && param_change)) { @@ -3119,7 +3119,7 @@ static void bgp_evpn_es_evi_vtep_re_eval_active(struct bgp *bgp, bool new_active; uint32_t ead_activity_flags; - old_active = !!CHECK_FLAG(evi_vtep->flags, BGP_EVPN_EVI_VTEP_ACTIVE); + old_active = CHECK_FLAG(evi_vtep->flags, BGP_EVPN_EVI_VTEP_ACTIVE); if (bgp_mh_info->ead_evi_rx) /* Both EAD-per-ES and EAD-per-EVI routes must be rxed from a PE @@ -3135,7 +3135,7 @@ static void bgp_evpn_es_evi_vtep_re_eval_active(struct bgp *bgp, else UNSET_FLAG(evi_vtep->flags, BGP_EVPN_EVI_VTEP_ACTIVE); - new_active = !!CHECK_FLAG(evi_vtep->flags, BGP_EVPN_EVI_VTEP_ACTIVE); + new_active = CHECK_FLAG(evi_vtep->flags, BGP_EVPN_EVI_VTEP_ACTIVE); if (old_active == new_active) return; diff --git a/bgpd/bgp_mpath.c b/bgpd/bgp_mpath.c index d5fce115d..8127428bc 100644 --- a/bgpd/bgp_mpath.c +++ b/bgpd/bgp_mpath.c @@ -411,7 +411,8 @@ static void bgp_path_info_mpath_lb_update(struct bgp_path_info *path, bool set, { struct bgp_path_info_mpath *mpath; - if ((mpath = path->mpath) == NULL) { + mpath = path->mpath; + if (mpath == NULL) { if (!set || (cum_bw == 0 && !all_paths_lb)) return; diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index 6f7424c5e..eb00a4641 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -1053,7 +1053,7 @@ void evaluate_paths(struct bgp_nexthop_cache *bnc) || path->attr->srte_color != 0) SET_FLAG(path->flags, BGP_PATH_IGP_CHANGED); - path_valid = !!CHECK_FLAG(path->flags, BGP_PATH_VALID); + path_valid = CHECK_FLAG(path->flags, BGP_PATH_VALID); if (path_valid != bnc_is_valid_nexthop) { if (path_valid) { /* No longer valid, clear flag; also for EVPN diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index ab877574f..107aa1eb1 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -11643,7 +11643,8 @@ static int bgp_show_route_in_table(struct vty *vty, struct bgp *bgp, if (!table) continue; - if ((rm = bgp_node_match(table, &match)) == NULL) + rm = bgp_node_match(table, &match); + if (rm == NULL) continue; const struct prefix *rm_p = bgp_dest_get_prefix(rm); @@ -11735,7 +11736,8 @@ static int bgp_show_route_in_table(struct vty *vty, struct bgp *bgp, json_object_free(json_paths); } } else { - if ((dest = bgp_node_match(rib, &match)) != NULL) { + dest = bgp_node_match(rib, &match); + if (dest != NULL) { const struct prefix *dest_p = bgp_dest_get_prefix(dest); if (!prefix_check || dest_p->prefixlen == match.prefixlen) { @@ -14759,7 +14761,8 @@ static int bgp_clear_damp_route(struct vty *vty, const char *view_name, table = bgp_dest_get_bgp_table_info(dest); if (!table) continue; - if ((rm = bgp_node_match(table, &match)) == NULL) + rm = bgp_node_match(table, &match); + if (rm == NULL) continue; const struct prefix *rm_p = bgp_dest_get_prefix(dest); @@ -14783,8 +14786,8 @@ static int bgp_clear_damp_route(struct vty *vty, const char *view_name, bgp_dest_unlock_node(rm); } } else { - if ((dest = bgp_node_match(bgp->rib[afi][safi], &match)) - != NULL) { + dest = bgp_node_match(bgp->rib[afi][safi], &match); + if (dest != NULL) { const struct prefix *dest_p = bgp_dest_get_prefix(dest); if (!prefix_check diff --git a/bgpd/bgp_routemap_nb_config.c b/bgpd/bgp_routemap_nb_config.c index e541d117b..88e3f6438 100644 --- a/bgpd/bgp_routemap_nb_config.c +++ b/bgpd/bgp_routemap_nb_config.c @@ -70,8 +70,8 @@ static int bgp_route_match_delete(struct route_map_index *index, if (type != RMAP_EVENT_MATCH_DELETED) { /* ignore the mundane, the types without any dependency */ if (arg == NULL) { - if ((tmpstr = route_map_get_match_arg(index, command)) - != NULL) + tmpstr = route_map_get_match_arg(index, command); + if (tmpstr != NULL) dep_name = XSTRDUP(MTYPE_ROUTE_MAP_RULE, tmpstr); } else { diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c index 18829aa74..9c2288cba 100644 --- a/bgpd/bgp_updgrp_adv.c +++ b/bgpd/bgp_updgrp_adv.c @@ -572,7 +572,8 @@ void bgp_adj_out_unset_subgroup(struct bgp_dest *dest, return; /* Lookup existing adjacency */ - if ((adj = adj_lookup(dest, subgrp, addpath_tx_id)) != NULL) { + adj = adj_lookup(dest, subgrp, addpath_tx_id); + if (adj != NULL) { /* Clean up previous advertisement. */ if (adj->adv) bgp_advertise_clean_subgroup(subgrp, adj); diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index e713894eb..9d7e88bb1 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -1857,9 +1857,8 @@ void cli_show_router_bgp_med_config(struct vty *vty, struct lyd_node *dnode, uint32_t med_admin_val; vty_out(vty, " bgp max-med administrative"); - if ((med_admin_val = - yang_dnode_get_uint32(dnode, "./max-med-admin")) - != BGP_MAXMED_VALUE_DEFAULT) + med_admin_val = yang_dnode_get_uint32(dnode, "./max-med-admin"); + if (med_admin_val != BGP_MAXMED_VALUE_DEFAULT) vty_out(vty, " %u", med_admin_val); vty_out(vty, "\n"); } @@ -10196,7 +10195,8 @@ static int bgp_clear_prefix(struct vty *vty, const char *view_name, if (table == NULL) continue; - if ((rm = bgp_node_match(table, &match)) != NULL) { + rm = bgp_node_match(table, &match); + if (rm != NULL) { const struct prefix *rm_p = bgp_dest_get_prefix(rm); @@ -10209,7 +10209,8 @@ static int bgp_clear_prefix(struct vty *vty, const char *view_name, } } } else { - if ((dest = bgp_node_match(rib, &match)) != NULL) { + dest = bgp_node_match(rib, &match); + if (dest != NULL) { const struct prefix *dest_p = bgp_dest_get_prefix(dest); if (dest_p->prefixlen == match.prefixlen) { diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index b861d13fd..acade16ef 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3099,8 +3099,7 @@ static struct bgp *bgp_create(as_t *as, const char *name, afi_t afi; safi_t safi; - if ((bgp = XCALLOC(MTYPE_BGP, sizeof(struct bgp))) == NULL) - return NULL; + bgp = XCALLOC(MTYPE_BGP, sizeof(struct bgp)); if (BGP_DEBUG(zebra, ZEBRA)) { if (inst_type == BGP_INSTANCE_TYPE_DEFAULT) diff --git a/lib/buffer.c b/lib/buffer.c index 7929b3709..41b1adc9f 100644 --- a/lib/buffer.c +++ b/lib/buffer.c @@ -357,7 +357,8 @@ buffer_status_t buffer_flush_window(struct buffer *b, int fd, int width, iov_size = ((iov_index > IOV_MAX) ? IOV_MAX : iov_index); - if ((nbytes = writev(fd, c_iov, iov_size)) < 0) { + nbytes = writev(fd, c_iov, iov_size); + if (nbytes < 0) { flog_err(EC_LIB_SOCKET, "%s: writev to fd %d failed: %s", __func__, fd, safe_strerror(errno)); @@ -370,7 +371,8 @@ buffer_status_t buffer_flush_window(struct buffer *b, int fd, int width, } } #else /* IOV_MAX */ - if ((nbytes = writev(fd, iov, iov_index)) < 0) + nbytes = writev(fd, iov, iov_index); + if (nbytes < 0) flog_err(EC_LIB_SOCKET, "%s: writev to fd %d failed: %s", __func__, fd, safe_strerror(errno)); #endif /* IOV_MAX */ @@ -472,13 +474,17 @@ buffer_status_t buffer_write(struct buffer *b, int fd, const void *p, /* Buffer is not empty, so do not attempt to write the new data. */ nbytes = 0; - else if ((nbytes = write(fd, p, size)) < 0) { - if (ERRNO_IO_RETRY(errno)) - nbytes = 0; - else { - flog_err(EC_LIB_SOCKET, "%s: write error on fd %d: %s", - __func__, fd, safe_strerror(errno)); - return BUFFER_ERROR; + else { + nbytes = write(fd, p, size); + if (nbytes < 0) { + if (ERRNO_IO_RETRY(errno)) + nbytes = 0; + else { + flog_err(EC_LIB_SOCKET, + "%s: write error on fd %d: %s", + __func__, fd, safe_strerror(errno)); + return BUFFER_ERROR; + } } } /* Add any remaining data to the buffer. */ @@ -641,7 +641,8 @@ static int get_memory_usage(pid_t pid) char *vm; snprintf(status_child, sizeof(status_child), "/proc/%d/status", pid); - if ((fd = open(status_child, O_RDONLY)) < 0) + fd = open(status_child, O_RDONLY); + if (fd < 0) return -1; read(fd, buf, 4095); diff --git a/lib/link_state.c b/lib/link_state.c index e8a6b89f8..062384aac 100644 --- a/lib/link_state.c +++ b/lib/link_state.c @@ -538,8 +538,6 @@ struct ls_edge *ls_edge_add(struct ls_ted *ted, /* Create Edge and add it to the TED */ new = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_edge)); - if (!new) - return NULL; new->attributes = attributes; new->key = key; @@ -804,8 +802,6 @@ struct ls_ted *ls_ted_new(const uint32_t key, const char *name, struct ls_ted *new; new = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_ted)); - if (new == NULL) - return new; /* Set basic information for this ted */ new->key = key; @@ -1005,8 +1001,6 @@ static struct ls_node *ls_parse_node(struct stream *s) size_t len; node = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_node)); - if (node == NULL) - return NULL; STREAM_GET(&node->adv, s, sizeof(struct ls_node_id)); STREAM_GETW(s, node->flags); @@ -1051,8 +1045,6 @@ static struct ls_attributes *ls_parse_attributes(struct stream *s) size_t len; attr = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_attributes)); - if (attr == NULL) - return NULL; attr->srlgs = NULL; STREAM_GET(&attr->adv, s, sizeof(struct ls_node_id)); @@ -1157,8 +1149,6 @@ static struct ls_prefix *ls_parse_prefix(struct stream *s) size_t len; ls_pref = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_prefix)); - if (ls_pref == NULL) - return NULL; STREAM_GET(&ls_pref->adv, s, sizeof(struct ls_node_id)); STREAM_GETW(s, ls_pref->flags); @@ -1193,8 +1183,6 @@ struct ls_message *ls_parse_msg(struct stream *s) struct ls_message *msg; msg = XCALLOC(MTYPE_LS_DB, sizeof(struct ls_message)); - if (msg == NULL) - return NULL; /* Read LS Message header */ STREAM_GETC(s, msg->event); diff --git a/lib/network.c b/lib/network.c index 411661a5e..b60ad9a57 100644 --- a/lib/network.c +++ b/lib/network.c @@ -78,7 +78,8 @@ int set_nonblocking(int fd) /* According to the Single UNIX Spec, the return value for F_GETFL should never be negative. */ - if ((flags = fcntl(fd, F_GETFL)) < 0) { + flags = fcntl(fd, F_GETFL); + if (flags < 0) { flog_err(EC_LIB_SYSTEM_CALL, "fcntl(F_GETFL) failed for fd %d: %s", fd, safe_strerror(errno)); diff --git a/lib/ntop.c b/lib/ntop.c index ccbf8793d..1b2dd7a6d 100644 --- a/lib/ntop.c +++ b/lib/ntop.c @@ -40,14 +40,18 @@ static inline void putbyte(uint8_t bytex, char **posx) bool zero = false; int byte = bytex, tmp, a, b; - if ((tmp = byte - 200) >= 0) { + tmp = byte - 200; + if (tmp >= 0) { *pos++ = '2'; zero = true; byte = tmp; - } else if ((tmp = byte - 100) >= 0) { - *pos++ = '1'; - zero = true; - byte = tmp; + } else { + tmp = byte - 100; + if (tmp >= 0) { + *pos++ = '1'; + zero = true; + byte = tmp; + } } /* make sure the compiler knows the value range of "byte" */ diff --git a/lib/prefix.c b/lib/prefix.c index 1c57715e8..ef7d2e59d 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -1034,7 +1034,8 @@ const char *prefix2str(union prefixconstptr pu, char *str, int size) l = strlen(buf); buf[l++] = '/'; byte = p->prefixlen; - if ((tmp = p->prefixlen - 100) >= 0) { + tmp = p->prefixlen - 100; + if (tmp >= 0) { buf[l++] = '1'; z = true; byte = tmp; diff --git a/lib/sockopt.c b/lib/sockopt.c index 98bfda507..150736e00 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -379,14 +379,14 @@ static int setsockopt_ipv4_ifindex(int sock, ifindex_t val) int ret; #if defined(IP_PKTINFO) - if ((ret = setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof(val))) - < 0) + ret = setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof(val)); + if (ret < 0) flog_err(EC_LIB_SOCKET, "Can't set IP_PKTINFO option for fd %d to %d: %s", sock, val, safe_strerror(errno)); #elif defined(IP_RECVIF) - if ((ret = setsockopt(sock, IPPROTO_IP, IP_RECVIF, &val, sizeof(val))) - < 0) + ret = setsockopt(sock, IPPROTO_IP, IP_RECVIF, &val, sizeof(val)); + if (ret < 0) flog_err(EC_LIB_SOCKET, "Can't set IP_RECVIF option for fd %d to %d: %s", sock, val, safe_strerror(errno)); @@ -639,12 +639,8 @@ int sockopt_tcp_signature_ext(int sock, union sockunion *su, uint16_t prefixlen, #endif /* GNU_LINUX */ - if ((ret = setsockopt(sock, IPPROTO_TCP, optname, &md5sig, - sizeof(md5sig))) - < 0) { - /* ENOENT is harmless. It is returned when we clear a password - for which - one was not previously set. */ + ret = setsockopt(sock, IPPROTO_TCP, optname, &md5sig, sizeof(md5sig)); + if (ret < 0) { if (ENOENT == errno) ret = 0; else diff --git a/lib/stream.c b/lib/stream.c index 904ee73b1..1557500c6 100644 --- a/lib/stream.c +++ b/lib/stream.c @@ -1097,7 +1097,8 @@ ssize_t stream_read_try(struct stream *s, int fd, size_t size) return -1; } - if ((nbytes = read(fd, s->data + s->endp, size)) >= 0) { + nbytes = read(fd, s->data + s->endp, size); + if (nbytes >= 0) { s->endp += nbytes; return nbytes; } @@ -1126,9 +1127,8 @@ ssize_t stream_recvfrom(struct stream *s, int fd, size_t size, int flags, return -1; } - if ((nbytes = recvfrom(fd, s->data + s->endp, size, flags, from, - fromlen)) - >= 0) { + nbytes = recvfrom(fd, s->data + s->endp, size, flags, from, fromlen); + if (nbytes >= 0) { s->endp += nbytes; return nbytes; } diff --git a/lib/zclient.c b/lib/zclient.c index 1b4ac080c..dc8322765 100644 --- a/lib/zclient.c +++ b/lib/zclient.c @@ -3812,7 +3812,8 @@ static int zclient_read(struct thread *thread) zclient->t_read = NULL; /* Read zebra header (if we don't have it already). */ - if ((already = stream_get_endp(zclient->ibuf)) < ZEBRA_HEADER_SIZE) { + already = stream_get_endp(zclient->ibuf); + if (already < ZEBRA_HEADER_SIZE) { ssize_t nbyte; if (((nbyte = stream_read_try(zclient->ibuf, zclient->sock, ZEBRA_HEADER_SIZE - already)) @@ -3825,7 +3826,6 @@ static int zclient_read(struct thread *thread) return zclient_failed(zclient); } if (nbyte != (ssize_t)(ZEBRA_HEADER_SIZE - already)) { - /* Try again later. */ zclient_event(ZCLIENT_READ, zclient); return 0; } diff --git a/tools/coccinelle/xcalloc-xmalloc.cocci b/tools/coccinelle/xcalloc-xmalloc.cocci new file mode 100644 index 000000000..2a091d4cd --- /dev/null +++ b/tools/coccinelle/xcalloc-xmalloc.cocci @@ -0,0 +1,17 @@ +// No need checking against NULL for XMALLOC/XCALLOC. +// If that happens, we have more problems with memory. + +@@ +type T; +T *ptr; +@@ + +ptr = +( +XCALLOC(...) +| +XMALLOC(...) +) +... +- if (ptr == NULL) +- return ...; |