New Defects reported by Coverity Scan for freerangerouting/frr

scan-admin at coverity.com scan-admin at coverity.com
Tue Jan 23 00:22:39 UTC 2024


Hi,

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

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


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


** CID 1575926:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1772 in rpki_expire_interval_magic()
/bgpd/bgp_rpki.c: 1772 in rpki_expire_interval_magic()


________________________________________________________________________________________________________
*** CID 1575926:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1772 in rpki_expire_interval_magic()
1766     
1767     	if (vty->node == RPKI_VRF_NODE)
1768     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1769     	else
1770     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1771     
>>>     CID 1575926:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1772     	if ((unsigned int)tmp >= rpki_vrf->polling_period) {
1773     		rpki_vrf->expire_interval = tmp;
1774     		return CMD_SUCCESS;
1775     	}
1776     
1777     	vty_out(vty, "%% Expiry interval must be polling period or larger\n");
/bgpd/bgp_rpki.c: 1772 in rpki_expire_interval_magic()
1766     
1767     	if (vty->node == RPKI_VRF_NODE)
1768     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1769     	else
1770     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1771     
>>>     CID 1575926:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1772     	if ((unsigned int)tmp >= rpki_vrf->polling_period) {
1773     		rpki_vrf->expire_interval = tmp;
1774     		return CMD_SUCCESS;
1775     	}
1776     
1777     	vty_out(vty, "%% Expiry interval must be polling period or larger\n");

** CID 1575925:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1833 in no_rpki_retry_interval()
/bgpd/bgp_rpki.c: 1833 in no_rpki_retry_interval()


________________________________________________________________________________________________________
*** CID 1575925:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1833 in no_rpki_retry_interval()
1827     
1828     	if (vty->node == RPKI_VRF_NODE)
1829     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1830     	else
1831     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1832     
>>>     CID 1575925:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1833     	rpki_vrf->retry_interval = RETRY_INTERVAL_DEFAULT;
1834     	return CMD_SUCCESS;
1835     }
1836     
1837     DEFPY(rpki_cache, rpki_cache_cmd,
1838           "rpki cache <A.B.C.D|WORD> <TCPPORT|(1-65535)$sshport SSH_UNAME SSH_PRIVKEY [SERVER_PUBKEY]> [source <A.B.C.D>$bindaddr] preference (1-255)",
/bgpd/bgp_rpki.c: 1833 in no_rpki_retry_interval()
1827     
1828     	if (vty->node == RPKI_VRF_NODE)
1829     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1830     	else
1831     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1832     
>>>     CID 1575925:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1833     	rpki_vrf->retry_interval = RETRY_INTERVAL_DEFAULT;
1834     	return CMD_SUCCESS;
1835     }
1836     
1837     DEFPY(rpki_cache, rpki_cache_cmd,
1838           "rpki cache <A.B.C.D|WORD> <TCPPORT|(1-65535)$sshport SSH_UNAME SSH_PRIVKEY [SERVER_PUBKEY]> [source <A.B.C.D>$bindaddr] preference (1-255)",

** CID 1575924:    (CHECKED_RETURN)
/bgpd/bgp_rpki.c: 1348 in rpki_create_socket()
/bgpd/bgp_rpki.c: 1349 in rpki_create_socket()


________________________________________________________________________________________________________
*** CID 1575924:    (CHECKED_RETURN)
/bgpd/bgp_rpki.c: 1348 in rpki_create_socket()
1342     
1343     	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &cancel_state);
1344     	timeout.tv_sec = 30;
1345     	timeout.tv_usec = 0;
1346     
1347     	optlen = sizeof(prev_rcv_tmout);
>>>     CID 1575924:    (CHECKED_RETURN)
>>>     Calling "getsockopt(socket, 1, 20, &prev_rcv_tmout, &optlen)" without checking return value. This library function may fail and return an error code.
1348     	getsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout, &optlen);
1349     	getsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout, &optlen);
1350     
1351     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
1352     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
1353     
/bgpd/bgp_rpki.c: 1349 in rpki_create_socket()
1343     	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &cancel_state);
1344     	timeout.tv_sec = 30;
1345     	timeout.tv_usec = 0;
1346     
1347     	optlen = sizeof(prev_rcv_tmout);
1348     	getsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout, &optlen);
>>>     CID 1575924:    (CHECKED_RETURN)
>>>     Calling "getsockopt(socket, 1, 21, &prev_snd_tmout, &optlen)" without checking return value. This library function may fail and return an error code.
1349     	getsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout, &optlen);
1350     
1351     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
1352     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
1353     
1354     	if (connect(socket, res->ai_addr, res->ai_addrlen) == -1) {

** CID 1575923:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1735 in rpki_polling_period_magic()
/bgpd/bgp_rpki.c: 1735 in rpki_polling_period_magic()


________________________________________________________________________________________________________
*** CID 1575923:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1735 in rpki_polling_period_magic()
1729     
1730     	if (vty->node == RPKI_VRF_NODE)
1731     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1732     	else
1733     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1734     
>>>     CID 1575923:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1735     	rpki_vrf->polling_period = pp;
1736     	return CMD_SUCCESS;
1737     }
1738     
1739     DEFUN (no_rpki_polling_period,
1740            no_rpki_polling_period_cmd,
/bgpd/bgp_rpki.c: 1735 in rpki_polling_period_magic()
1729     
1730     	if (vty->node == RPKI_VRF_NODE)
1731     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1732     	else
1733     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1734     
>>>     CID 1575923:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1735     	rpki_vrf->polling_period = pp;
1736     	return CMD_SUCCESS;
1737     }
1738     
1739     DEFUN (no_rpki_polling_period,
1740            no_rpki_polling_period_cmd,

** CID 1575922:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1754 in no_rpki_polling_period()
/bgpd/bgp_rpki.c: 1754 in no_rpki_polling_period()


________________________________________________________________________________________________________
*** CID 1575922:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1754 in no_rpki_polling_period()
1748     
1749     	if (vty->node == RPKI_VRF_NODE)
1750     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1751     	else
1752     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1753     
>>>     CID 1575922:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1754     	rpki_vrf->polling_period = POLLING_PERIOD_DEFAULT;
1755     	return CMD_SUCCESS;
1756     }
1757     
1758     DEFPY (rpki_expire_interval,
1759            rpki_expire_interval_cmd,
/bgpd/bgp_rpki.c: 1754 in no_rpki_polling_period()
1748     
1749     	if (vty->node == RPKI_VRF_NODE)
1750     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1751     	else
1752     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1753     
>>>     CID 1575922:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1754     	rpki_vrf->polling_period = POLLING_PERIOD_DEFAULT;
1755     	return CMD_SUCCESS;
1756     }
1757     
1758     DEFPY (rpki_expire_interval,
1759            rpki_expire_interval_cmd,

** CID 1575921:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1796 in no_rpki_expire_interval()
/bgpd/bgp_rpki.c: 1796 in no_rpki_expire_interval()


________________________________________________________________________________________________________
*** CID 1575921:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1796 in no_rpki_expire_interval()
1790     
1791     	if (vty->node == RPKI_VRF_NODE)
1792     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1793     	else
1794     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1795     
>>>     CID 1575921:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1796     	rpki_vrf->expire_interval = rpki_vrf->polling_period * 2;
1797     	return CMD_SUCCESS;
1798     }
1799     
1800     DEFPY (rpki_retry_interval,
1801            rpki_retry_interval_cmd,
/bgpd/bgp_rpki.c: 1796 in no_rpki_expire_interval()
1790     
1791     	if (vty->node == RPKI_VRF_NODE)
1792     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1793     	else
1794     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1795     
>>>     CID 1575921:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1796     	rpki_vrf->expire_interval = rpki_vrf->polling_period * 2;
1797     	return CMD_SUCCESS;
1798     }
1799     
1800     DEFPY (rpki_retry_interval,
1801            rpki_retry_interval_cmd,

** CID 1575920:    (NULL_RETURNS)


________________________________________________________________________________________________________
*** CID 1575920:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 2425 in config_on_exit()
2419     	struct rpki_vrf *rpki_vrf;
2420     
2421     	if (vty->node == RPKI_VRF_NODE)
2422     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
2423     	else
2424     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
>>>     CID 1575920:    (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "rpki_vrf" when calling "reset".
2425     	reset(false, rpki_vrf);
2426     	return 1;
2427     }
2428     
2429     DEFPY(rpki_reset,
2430            rpki_reset_cmd,
/bgpd/bgp_rpki.c: 2425 in config_on_exit()
2419     	struct rpki_vrf *rpki_vrf;
2420     
2421     	if (vty->node == RPKI_VRF_NODE)
2422     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
2423     	else
2424     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
>>>     CID 1575920:    (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "rpki_vrf" when calling "reset".
2425     	reset(false, rpki_vrf);
2426     	return 1;
2427     }
2428     
2429     DEFPY(rpki_reset,
2430            rpki_reset_cmd,

** CID 1575919:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1933 in no_rpki_cache_magic()
/bgpd/bgp_rpki.c: 1933 in no_rpki_cache_magic()


________________________________________________________________________________________________________
*** CID 1575919:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1933 in no_rpki_cache_magic()
1927     
1928     	if (vty->node == RPKI_VRF_NODE)
1929     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1930     	else
1931     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1932     
>>>     CID 1575919:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1933     	cache_list = rpki_vrf->cache_list;
1934     	cache_p = find_cache(preference, cache_list);
1935     	if (!rpki_vrf || !cache_p) {
1936     		vty_out(vty, "Could not find cache with preference %ld\n",
1937     			preference);
1938     		return CMD_WARNING;
/bgpd/bgp_rpki.c: 1933 in no_rpki_cache_magic()
1927     
1928     	if (vty->node == RPKI_VRF_NODE)
1929     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1930     	else
1931     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1932     
>>>     CID 1575919:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1933     	cache_list = rpki_vrf->cache_list;
1934     	cache_p = find_cache(preference, cache_list);
1935     	if (!rpki_vrf || !cache_p) {
1936     		vty_out(vty, "Could not find cache with preference %ld\n",
1937     			preference);
1938     		return CMD_WARNING;

** CID 1575918:  Null pointer dereferences  (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1294 in rpki_create_socket()


________________________________________________________________________________________________________
*** CID 1575918:  Null pointer dereferences  (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1294 in rpki_create_socket()
1288     	int ret;
1289     #if defined(FOUND_SSH)
1290     	struct tr_ssh_config *ssh_config;
1291     	char s_port[10];
1292     #endif
1293     
>>>     CID 1575918:  Null pointer dereferences  (REVERSE_INULL)
>>>     Null-checking "cache" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1294     	if (!cache)
1295     		return -1;
1296     
1297     	if (rpki_vrf->vrfname == NULL)
1298     		vrf = vrf_lookup_by_id(VRF_DEFAULT);
1299     	else

** CID 1575917:  Null pointer dereferences  (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1631 in rpki()


________________________________________________________________________________________________________
*** CID 1575917:  Null pointer dereferences  (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1631 in rpki()
1625     	if (vty->node == CONFIG_NODE)
1626     		vty->node = RPKI_NODE;
1627     	else {
1628     		struct vrf *vrf = VTY_GET_CONTEXT(vrf);
1629     
1630     		vty->node = RPKI_VRF_NODE;
>>>     CID 1575917:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing "vrf", which is known to be "NULL".
1631     		if (vrf->vrf_id != VRF_DEFAULT)
1632     			vrfname = vrf->name;
1633     	}
1634     
1635     	rpki_vrf = find_rpki_vrf(vrfname);
1636     	if (!rpki_vrf) {

** CID 1575916:    (CHECKED_RETURN)
/bgpd/bgp_rpki.c: 1352 in rpki_create_socket()
/bgpd/bgp_rpki.c: 1366 in rpki_create_socket()
/bgpd/bgp_rpki.c: 1351 in rpki_create_socket()
/bgpd/bgp_rpki.c: 1368 in rpki_create_socket()


________________________________________________________________________________________________________
*** CID 1575916:    (CHECKED_RETURN)
/bgpd/bgp_rpki.c: 1352 in rpki_create_socket()
1346     
1347     	optlen = sizeof(prev_rcv_tmout);
1348     	getsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout, &optlen);
1349     	getsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout, &optlen);
1350     
1351     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
>>>     CID 1575916:    (CHECKED_RETURN)
>>>     Calling "setsockopt(socket, 1, 21, &timeout, 16U)" without checking return value. This library function may fail and return an error code.
1352     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
1353     
1354     	if (connect(socket, res->ai_addr, res->ai_addrlen) == -1) {
1355     		if (res)
1356     			freeaddrinfo(res);
1357     		close(socket);
/bgpd/bgp_rpki.c: 1366 in rpki_create_socket()
1360     	}
1361     
1362     	if (res)
1363     		freeaddrinfo(res);
1364     	pthread_setcancelstate(cancel_state, NULL);
1365     
>>>     CID 1575916:    (CHECKED_RETURN)
>>>     Calling "setsockopt(socket, 1, 20, &prev_rcv_tmout, 16U)" without checking return value. This library function may fail and return an error code.
1366     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout,
1367     		   sizeof(prev_rcv_tmout));
1368     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout,
1369     		   sizeof(prev_snd_tmout));
1370     
1371     	return socket;
/bgpd/bgp_rpki.c: 1351 in rpki_create_socket()
1345     	timeout.tv_usec = 0;
1346     
1347     	optlen = sizeof(prev_rcv_tmout);
1348     	getsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout, &optlen);
1349     	getsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout, &optlen);
1350     
>>>     CID 1575916:    (CHECKED_RETURN)
>>>     Calling "setsockopt(socket, 1, 20, &timeout, 16U)" without checking return value. This library function may fail and return an error code.
1351     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
1352     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
1353     
1354     	if (connect(socket, res->ai_addr, res->ai_addrlen) == -1) {
1355     		if (res)
1356     			freeaddrinfo(res);
/bgpd/bgp_rpki.c: 1368 in rpki_create_socket()
1362     	if (res)
1363     		freeaddrinfo(res);
1364     	pthread_setcancelstate(cancel_state, NULL);
1365     
1366     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout,
1367     		   sizeof(prev_rcv_tmout));
>>>     CID 1575916:    (CHECKED_RETURN)
>>>     Calling "setsockopt(socket, 1, 21, &prev_snd_tmout, 16U)" without checking return value. This library function may fail and return an error code.
1368     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout,
1369     		   sizeof(prev_snd_tmout));
1370     
1371     	return socket;
1372     }
1373     

** CID 1575915:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1814 in rpki_retry_interval_magic()
/bgpd/bgp_rpki.c: 1814 in rpki_retry_interval_magic()


________________________________________________________________________________________________________
*** CID 1575915:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 1814 in rpki_retry_interval_magic()
1808     
1809     	if (vty->node == RPKI_VRF_NODE)
1810     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1811     	else
1812     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1813     
>>>     CID 1575915:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1814     	rpki_vrf->retry_interval = tmp;
1815     	return CMD_SUCCESS;
1816     }
1817     
1818     DEFUN (no_rpki_retry_interval,
1819            no_rpki_retry_interval_cmd,
/bgpd/bgp_rpki.c: 1814 in rpki_retry_interval_magic()
1808     
1809     	if (vty->node == RPKI_VRF_NODE)
1810     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1811     	else
1812     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1813     
>>>     CID 1575915:    (NULL_RETURNS)
>>>     Dereferencing "rpki_vrf", which is known to be "NULL".
1814     	rpki_vrf->retry_interval = tmp;
1815     	return CMD_SUCCESS;
1816     }
1817     
1818     DEFUN (no_rpki_retry_interval,
1819            no_rpki_retry_interval_cmd,

** CID 1575914:  Resource leaks  (RESOURCE_LEAK)
/bgpd/bgp_rpki.c: 1341 in rpki_create_socket()


________________________________________________________________________________________________________
*** CID 1575914:  Resource leaks  (RESOURCE_LEAK)
/bgpd/bgp_rpki.c: 1341 in rpki_create_socket()
1335     
1336     	frr_with_privs (&bgpd_privs) {
1337     		socket = vrf_socket(res->ai_family, res->ai_socktype,
1338     				    res->ai_protocol, vrf->vrf_id, NULL);
1339     	}
1340     	if (socket < 0)
>>>     CID 1575914:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "res" going out of scope leaks the storage it points to.
1341     		return -1;
1342     
1343     	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &cancel_state);
1344     	timeout.tv_sec = 30;
1345     	timeout.tv_usec = 0;
1346     

** CID 1575913:    (NULL_RETURNS)


________________________________________________________________________________________________________
*** CID 1575913:    (NULL_RETURNS)
/bgpd/bgp_rpki.c: 2457 in rpki_reset_config_mode_magic()
2451     	struct rpki_vrf *rpki_vrf;
2452     
2453     	if (vty->node == RPKI_VRF_NODE)
2454     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
2455     	else
2456     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
>>>     CID 1575913:    (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "rpki_vrf" when calling "reset".
2457     	return reset(true, rpki_vrf) == SUCCESS ? CMD_SUCCESS : CMD_WARNING;
2458     }
2459     
2460     DEFUN (debug_rpki,
2461            debug_rpki_cmd,
2462            "debug rpki",
/bgpd/bgp_rpki.c: 2457 in rpki_reset_config_mode_magic()
2451     	struct rpki_vrf *rpki_vrf;
2452     
2453     	if (vty->node == RPKI_VRF_NODE)
2454     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
2455     	else
2456     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
>>>     CID 1575913:    (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "rpki_vrf" when calling "reset".
2457     	return reset(true, rpki_vrf) == SUCCESS ? CMD_SUCCESS : CMD_WARNING;
2458     }
2459     
2460     DEFUN (debug_rpki,
2461            debug_rpki_cmd,
2462            "debug rpki",

** CID 1575912:    (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1355 in rpki_create_socket()
/bgpd/bgp_rpki.c: 1362 in rpki_create_socket()


________________________________________________________________________________________________________
*** CID 1575912:    (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1355 in rpki_create_socket()
1349     	getsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &prev_snd_tmout, &optlen);
1350     
1351     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
1352     	setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
1353     
1354     	if (connect(socket, res->ai_addr, res->ai_addrlen) == -1) {
>>>     CID 1575912:    (REVERSE_INULL)
>>>     Null-checking "res" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1355     		if (res)
1356     			freeaddrinfo(res);
1357     		close(socket);
1358     		pthread_setcancelstate(cancel_state, NULL);
1359     		return -1;
1360     	}
/bgpd/bgp_rpki.c: 1362 in rpki_create_socket()
1356     			freeaddrinfo(res);
1357     		close(socket);
1358     		pthread_setcancelstate(cancel_state, NULL);
1359     		return -1;
1360     	}
1361     
>>>     CID 1575912:    (REVERSE_INULL)
>>>     Null-checking "res" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1362     	if (res)
1363     		freeaddrinfo(res);
1364     	pthread_setcancelstate(cancel_state, NULL);
1365     
1366     	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &prev_rcv_tmout,
1367     		   sizeof(prev_rcv_tmout));

** CID 1575911:  Null pointer dereferences  (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1935 in no_rpki_cache_magic()


________________________________________________________________________________________________________
*** CID 1575911:  Null pointer dereferences  (REVERSE_INULL)
/bgpd/bgp_rpki.c: 1935 in no_rpki_cache_magic()
1929     		rpki_vrf = VTY_GET_CONTEXT_SUB(rpki_vrf);
1930     	else
1931     		rpki_vrf = VTY_GET_CONTEXT(rpki_vrf);
1932     
1933     	cache_list = rpki_vrf->cache_list;
1934     	cache_p = find_cache(preference, cache_list);
>>>     CID 1575911:  Null pointer dereferences  (REVERSE_INULL)
>>>     Null-checking "rpki_vrf" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1935     	if (!rpki_vrf || !cache_p) {
1936     		vty_out(vty, "Could not find cache with preference %ld\n",
1937     			preference);
1938     		return CMD_WARNING;
1939     	}
1940     


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yrtN2DGUU98GYhjd55wXsXtw53zRK70R0agdV-2Fb7c45-2BoAJF92cCodBN9BBnDbw-2FFg-3D1N5z_O0IDF7c8sUs2B6kWTeWwAJZqriD5fgsfL8PAN30oQTzJbSqj9X0lFGnNGpvEFGbuwqTEnu8zz-2B7S3LaKIl-2FNCNmDfPuLC0t-2BE2-2B9t0xBeVGf5KvKv0qx5pChjiA4rX-2BIH2cobS5cWGQknLeq1ndOwB62ZAGoN4D9fm07EYYOCu3PQHmHdRdBMDOAMdjXsE2kANafwADfzb2-2FgIixBAGUJQ-3D-3D




More information about the dev mailing list