[dev] New Defects reported by Coverity Scan for freerangerouting/frr

scan-admin at coverity.com scan-admin at coverity.com
Thu Aug 10 16:32:17 EDT 2017


Hi,

Please find the latest report on new defect(s) introduced to freerangerouting/frr found with Coverity Scan.

9 new defect(s) introduced to freerangerouting/frr found with Coverity Scan.


New defect(s) Reported-by: Coverity Scan
Showing 9 of 9 defect(s)


** CID 1453456:  Error handling issues  (CHECKED_RETURN)
/lib/libfrr.c: 774 in frr_daemon_ctl()


________________________________________________________________________________________________________
*** CID 1453456:  Error handling issues  (CHECKED_RETURN)
/lib/libfrr.c: 774 in frr_daemon_ctl()
768     	if (nr <= 0)
769     		return 0;
770     
771     	switch (buf[0]) {
772     	case 'S':	/* SIGTSTP */
773     		vty_stdio_suspend();
>>>     CID 1453456:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "send(daemon_ctl_sock, "s", 1UL, 0)" without checking return value. This library function may fail and return an error code.
774     		send(daemon_ctl_sock, "s", 1, 0);
775     		break;
776     	case 'R':	/* SIGTCNT [implicit] */
777     		vty_stdio_resume();
778     		break;
779     	case 'I':	/* SIGINT */

** CID 1453455:  Null pointer dereferences  (NULL_RETURNS)
/bgpd/bgpd.c: 2585 in peer_group_bind()


________________________________________________________________________________________________________
*** CID 1453455:  Null pointer dereferences  (NULL_RETURNS)
/bgpd/bgpd.c: 2585 in peer_group_bind()
2579     			}
2580     
2581     		if (peer->group) {
2582     			assert(group && peer->group == group);
2583     		} else {
2584     			struct listnode *pn;
>>>     CID 1453455:  Null pointer dereferences  (NULL_RETURNS)
>>>     Assigning: "pn" = null return value from "listnode_lookup".
2585     			pn = listnode_lookup(bgp->peer, peer);
2586     			list_delete_node(bgp->peer, pn);
2587     			peer->group = group;
2588     			listnode_add_sort(bgp->peer, peer);
2589     
2590     			peer = peer_lock(peer); /* group->peer list reference */

** CID 1453454:    (RESOURCE_LEAK)
/zebra/zebra_vxlan.c: 1397 in zvni_gw_macip_del()
/zebra/zebra_vxlan.c: 1407 in zvni_gw_macip_del()


________________________________________________________________________________________________________
*** CID 1453454:    (RESOURCE_LEAK)
/zebra/zebra_vxlan.c: 1397 in zvni_gw_macip_del()
1391     	if (!n)
1392     		return 0;
1393     
1394     	/* mac entry should be present */
1395     	mac = zvni_mac_lookup(zvni, &n->emac);
1396     	if (!mac)
>>>     CID 1453454:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "prefix_mac2str(&n->emac, NULL, 18)" leaks it.
1397     		zlog_err("%u: MAC %s doesnt exsists for neigh %s on VNI %u",
1398     			 ifp->vrf_id,
1399     			 prefix_mac2str(&n->emac, NULL, ETHER_ADDR_STRLEN),
1400     			 ipaddr2str(ip, buf2, sizeof(buf2)), zvni->vni);
1401     
1402     	/* If the entry is not local nothing to do*/
/zebra/zebra_vxlan.c: 1407 in zvni_gw_macip_del()
1401     
1402     	/* If the entry is not local nothing to do*/
1403     	if (!CHECK_FLAG(n->flags, ZEBRA_NEIGH_LOCAL))
1404     		return -1;
1405     
1406     	if (IS_ZEBRA_DEBUG_VXLAN)
>>>     CID 1453454:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "prefix_mac2str(&n->emac, NULL, 18)" leaks it.
1407     		zlog_debug(
1408     			"%u:SVI %s(%u) VNI %u, sending GW MAC %s IP %s del to BGP",
1409     			ifp->vrf_id, ifp->name, ifp->ifindex, zvni->vni,
1410     			prefix_mac2str(&(n->emac), NULL, ETHER_ADDR_STRLEN),
1411     			ipaddr2str(ip, buf2, sizeof(buf2)));
1412     

** CID 1453453:  Null pointer dereferences  (FORWARD_NULL)
/zebra/zebra_vxlan.c: 1396 in zvni_gw_macip_del()


________________________________________________________________________________________________________
*** CID 1453453:  Null pointer dereferences  (FORWARD_NULL)
/zebra/zebra_vxlan.c: 1396 in zvni_gw_macip_del()
1390     	n = zvni_neigh_lookup(zvni, ip);
1391     	if (!n)
1392     		return 0;
1393     
1394     	/* mac entry should be present */
1395     	mac = zvni_mac_lookup(zvni, &n->emac);
>>>     CID 1453453:  Null pointer dereferences  (FORWARD_NULL)
>>>     Comparing "mac" to null implies that "mac" might be null.
1396     	if (!mac)
1397     		zlog_err("%u: MAC %s doesnt exsists for neigh %s on VNI %u",
1398     			 ifp->vrf_id,
1399     			 prefix_mac2str(&n->emac, NULL, ETHER_ADDR_STRLEN),
1400     			 ipaddr2str(ip, buf2, sizeof(buf2)), zvni->vni);
1401     

** CID 1453452:  Control flow issues  (DEADCODE)
/bgpd/bgp_route.c: 10267 in bgp_show_neighbor_route()


________________________________________________________________________________________________________
*** CID 1453452:  Control flow issues  (DEADCODE)
/bgpd/bgp_route.c: 10267 in bgp_show_neighbor_route()
10261     			vty_out(vty, "%% No such neighbor or address family\n");
10262     		return CMD_WARNING;
10263     	}
10264     
10265     	/* labeled-unicast routes live in the unicast table */
10266     	if (safi == SAFI_LABELED_UNICAST)
>>>     CID 1453452:  Control flow issues  (DEADCODE)
>>>     Execution cannot reach this statement: "safi = SAFI_UNICAST;".
10267     		safi = SAFI_UNICAST;
10268     
10269     	return bgp_show(vty, peer->bgp, afi, safi, type, &peer->su, use_json);
10270     }
10271     
10272     DEFUN (show_ip_bgp_neighbor_routes,

** CID 1453451:  Error handling issues  (NEGATIVE_RETURNS)
/lib/libfrr.c: 752 in frr_terminal_close()


________________________________________________________________________________________________________
*** CID 1453451:  Error handling issues  (NEGATIVE_RETURNS)
/lib/libfrr.c: 752 in frr_terminal_close()
746     	} else {
747     		printf("\n%s daemonizing\n", di->name);
748     		fflush(stdout);
749     	}
750     
751     	int nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
>>>     CID 1453451:  Error handling issues  (NEGATIVE_RETURNS)
>>>     "nullfd" is passed to a parameter that cannot be negative.
752     	dup2(nullfd, 0);
753     	dup2(nullfd, 1);
754     	dup2(nullfd, 2);
755     	close(nullfd);
756     }
757     

** CID 1453450:  Resource leaks  (RESOURCE_LEAK)
/bgpd/bgp_routemap.c: 662 in route_match_vni_compile()


________________________________________________________________________________________________________
*** CID 1453450:  Resource leaks  (RESOURCE_LEAK)
/bgpd/bgp_routemap.c: 662 in route_match_vni_compile()
656     	vni = XMALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(vni_t));
657     	if (!vni)
658     		return NULL;
659     
660     	*vni = strtoul(arg, &end, 10);
661     	if (*end != '\0')
>>>     CID 1453450:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "vni" going out of scope leaks the storage it points to.
662     		return NULL;
663     
664     	return vni;
665     }
666     
667     /* Free route map's compiled `vni' value. */

** CID 1453449:  Error handling issues  (NEGATIVE_RETURNS)
/lib/libfrr.c: 817 in frr_run()


________________________________________________________________________________________________________
*** CID 1453449:  Error handling issues  (NEGATIVE_RETURNS)
/lib/libfrr.c: 817 in frr_run()
811     			set_nonblocking(daemon_ctl_sock);
812     			thread_add_read(master, frr_daemon_ctl, NULL,
813     					daemon_ctl_sock, &daemon_ctl_thread);
814     		}
815     	} else {
816     		int nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
>>>     CID 1453449:  Error handling issues  (NEGATIVE_RETURNS)
>>>     "nullfd" is passed to a parameter that cannot be negative.
817     		dup2(nullfd, 0);
818     		dup2(nullfd, 1);
819     		dup2(nullfd, 2);
820     		close(nullfd);
821     
822     		if (daemon_ctl_sock != -1)

** CID 1453448:  Resource leaks  (RESOURCE_LEAK)
/zebra/zebra_vxlan.c: 1362 in zvni_gw_macip_add()


________________________________________________________________________________________________________
*** CID 1453448:  Resource leaks  (RESOURCE_LEAK)
/zebra/zebra_vxlan.c: 1362 in zvni_gw_macip_add()
1356     	n->ifindex = ifp->ifindex;
1357     
1358     	/* We have a neigh associated to mac increment the refcnt*/
1359     	mac->neigh_refcnt++;
1360     
1361     	if (IS_ZEBRA_DEBUG_VXLAN)
>>>     CID 1453448:  Resource leaks  (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "prefix_mac2str(macaddr, NULL, 18)" leaks it.
1362     		zlog_debug(
1363     			"%u:SVI %s(%u) VNI %u, sending GW MAC %s IP %s add to BGP",
1364     			ifp->vrf_id, ifp->name, ifp->ifindex, zvni->vni,
1365     			prefix_mac2str(macaddr, NULL, ETHER_ADDR_STRLEN),
1366     			ipaddr2str(ip, buf2, sizeof(buf2)));
1367     


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRa7dJ8klHLUFWVd2fqpS-2B-2FHaN43B-2FQ11ntcKmbKat2WeHs8691VOJpZofPkpp-2BRBqc-3D_d-2Fi2nRutHp-2FDWtw8JRg-2Bc1m9CS4-2B5uVbodfDyLsp-2FJlUx2f-2B-2FTOX7mZLxij3uOe95M-2F4ROO-2BTzB14nbf52weyQ-2FpjiLY7Ls2RINIiFDXF5-2FJA70y2fbudUKaOL-2BUy5nNCmZj9hKrtllzQStpR81hiF-2BBsCML-2FFwnwvefbj06gMJmr2GDfeVdBiq-2FO5YeLrPEitrWlHFRVRJ7asMsudE44g-3D-3D

To manage Coverity Scan email notifications for "frr at lists.nox.tf", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4lcTWm1Zma8LQDNpOYqrETKrqBiM18kcBcL8b08LzBPOYJYGySZ4Vv7d5QYcnSbGxl3QyORKgEmDxh-2BE2mj6dp1V4JSs2jbMZuLnEQJOW0Z0-3D_d-2Fi2nRutHp-2FDWtw8JRg-2Bc1m9CS4-2B5uVbodfDyLsp-2FJlUx2f-2B-2FTOX7mZLxij3uOe9ELLEZrvVyQKY9oPwXyvXEmwy0DDHrJUAtbqOo-2Bwl1CEPaDBf7llKo0SHvZ1ZkeOJWb3t3QC9WjuyhdBVsn9wz62iHnAn7g1yfua-2FMbTzkzQT5vTHIctRWHSb25iFDUhVULGzWIzOx3eI3LKjpOtWYw-3D-3D




More information about the dev mailing list