On 18/10/2021 20:31, Tim Gardner wrote:
Coverity complains of a possible NULL dereference in smc_find_rdma_v2_device_serv().
1782 smc_v2_ext = smc_get_clc_v2_ext(pclc);
CID 121151 (#1 of 1): Dereference null return value (NULL_RETURNS)
5. dereference: Dereferencing a pointer that might be NULL smc_v2_ext when calling smc_clc_match_eid. [show details]
1783 if (!smc_clc_match_eid(ini->negotiated_eid, smc_v2_ext, NULL, NULL))
1784 goto not_found;
Fix this by checking for NULL.
Hmm that's a fundamental question for me: do we want to make the code checkers happy?
While I understand that those warnings give an uneasy feeling I am not sure
if the code should have additional (unneeded) checks only to avoid them.
In this case all NULL checks are initially done in smc_listen_v2_check(),
afterwards no more NULL checks are needed. When we would like to add them
then a lot more checks are needed, e.g. 3 times in smc_find_ism_v2_device_serv()
(not sure why coverity does not complain about them, too).
Thoughts?