New Defects reported by Coverity Scan for freerangerouting/frr

scan-admin at coverity.com scan-admin at coverity.com
Tue Jan 24 22:17:44 UTC 2023


Hi,

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

4 new defect(s) introduced to freerangerouting/frr found with Coverity Scan.
9 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

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


** CID 1532182:    (ATOMICITY)
/zebra/zebra_dplane.c: 5555 in dplane_show_provs_helper()
/zebra/zebra_dplane.c: 5555 in dplane_show_provs_helper()


________________________________________________________________________________________________________
*** CID 1532182:    (ATOMICITY)
/zebra/zebra_dplane.c: 5555 in dplane_show_provs_helper()
5549     
5550     		vty_out(vty, "%s (%u): in: %"PRIu64", q: %"PRIu64", q_max: %"PRIu64", out: %"PRIu64", q: %"PRIu64", q_max: %"PRIu64"\n",
5551     			prov->dp_name, prov->dp_id, in, in_q, in_max,
5552     			out, out_q, out_max);
5553     
5554     		DPLANE_LOCK();
>>>     CID 1532182:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
5555     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
5556     		DPLANE_UNLOCK();
5557     	}
5558     
5559     	return CMD_SUCCESS;
5560     }
/zebra/zebra_dplane.c: 5555 in dplane_show_provs_helper()
5549     
5550     		vty_out(vty, "%s (%u): in: %"PRIu64", q: %"PRIu64", q_max: %"PRIu64", out: %"PRIu64", q: %"PRIu64", q_max: %"PRIu64"\n",
5551     			prov->dp_name, prov->dp_id, in, in_q, in_max,
5552     			out, out_q, out_max);
5553     
5554     		DPLANE_LOCK();
>>>     CID 1532182:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
5555     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
5556     		DPLANE_UNLOCK();
5557     	}
5558     
5559     	return CMD_SUCCESS;
5560     }

** CID 1532181:    (ATOMICITY)
/zebra/zebra_dplane.c: 6596 in dplane_work_pending()
/zebra/zebra_dplane.c: 6596 in dplane_work_pending()


________________________________________________________________________________________________________
*** CID 1532181:    (ATOMICITY)
/zebra/zebra_dplane.c: 6596 in dplane_work_pending()
6590     		dplane_provider_unlock(prov);
6591     
6592     		if (ctx != NULL)
6593     			break;
6594     
6595     		DPLANE_LOCK();
>>>     CID 1532181:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6596     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6597     		DPLANE_UNLOCK();
6598     	}
6599     
6600     	if (ctx != NULL)
6601     		ret = true;
/zebra/zebra_dplane.c: 6596 in dplane_work_pending()
6590     		dplane_provider_unlock(prov);
6591     
6592     		if (ctx != NULL)
6593     			break;
6594     
6595     		DPLANE_LOCK();
>>>     CID 1532181:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6596     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6597     		DPLANE_UNLOCK();
6598     	}
6599     
6600     	if (ctx != NULL)
6601     		ret = true;

** CID 1532180:    (ATOMICITY)
/zebra/zebra_dplane.c: 6972 in zebra_dplane_start()
/zebra/zebra_dplane.c: 6972 in zebra_dplane_start()


________________________________________________________________________________________________________
*** CID 1532180:    (ATOMICITY)
/zebra/zebra_dplane.c: 6972 in zebra_dplane_start()
6966     
6967     		if (prov->dp_start)
6968     			(prov->dp_start)(prov);
6969     
6970     		/* Locate next provider */
6971     		DPLANE_LOCK();
>>>     CID 1532180:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6972     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6973     		DPLANE_UNLOCK();
6974     	}
6975     
6976     	frr_pthread_run(zdplane_info.dg_pthread, NULL);
6977     }
/zebra/zebra_dplane.c: 6972 in zebra_dplane_start()
6966     
6967     		if (prov->dp_start)
6968     			(prov->dp_start)(prov);
6969     
6970     		/* Locate next provider */
6971     		DPLANE_LOCK();
>>>     CID 1532180:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6972     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6973     		DPLANE_UNLOCK();
6974     	}
6975     
6976     	frr_pthread_run(zdplane_info.dg_pthread, NULL);
6977     }

** CID 1532179:    (ATOMICITY)
/zebra/zebra_dplane.c: 6826 in dplane_thread_loop()
/zebra/zebra_dplane.c: 6826 in dplane_thread_loop()


________________________________________________________________________________________________________
*** CID 1532179:    (ATOMICITY)
/zebra/zebra_dplane.c: 6826 in dplane_thread_loop()
6820     		if (IS_ZEBRA_DEBUG_DPLANE_DETAIL)
6821     			zlog_debug("dplane dequeues %d completed work from provider %s",
6822     				   counter, dplane_provider_get_name(prov));
6823     
6824     		/* Locate next provider */
6825     		DPLANE_LOCK();
>>>     CID 1532179:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6826     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6827     		DPLANE_UNLOCK();
6828     	}
6829     
6830     	/*
6831     	 * We hit the work limit while processing at least one provider's
/zebra/zebra_dplane.c: 6826 in dplane_thread_loop()
6820     		if (IS_ZEBRA_DEBUG_DPLANE_DETAIL)
6821     			zlog_debug("dplane dequeues %d completed work from provider %s",
6822     				   counter, dplane_provider_get_name(prov));
6823     
6824     		/* Locate next provider */
6825     		DPLANE_LOCK();
>>>     CID 1532179:    (ATOMICITY)
>>>     Using an unreliable value of "prov" inside the second locked section. If the data that "prov" depends on was changed by another thread, this use might be incorrect.
6826     		prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
6827     		DPLANE_UNLOCK();
6828     	}
6829     
6830     	/*
6831     	 * We hit the work limit while processing at least one provider's


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yrtN2DGUU98GYhjd55wXsXtw53zRK70R0agdV-2Fb7c45-2BkxBoZjryQtr5SpUD80NNfE-3DaosO_O0IDF7c8sUs2B6kWTeWwAJZqriD5fgsfL8PAN30oQTwdqHbDKq43Kv7VPJsuwhilWW1y4rKogdoRiw9v1DlRorP5LqSw6km4IdhMtsaTOd5xVHfLZi0H-2BAn98GVGmHx9DpBH-2FobDs-2BlqaWsK1yWuULeUkxzfjlq5tUiUN6FROJoNtG9KI2-2F0HcZCCWEu7sKUZOceVtKeqm-2FPd0j4u8o2eA-3D-3D




More information about the dev mailing list