net: fsl-mc: NULL check dflt_dpbp before dereference

In dpbp_exit there is a NULL check for dflt_dpbp after it is
dereferenced a number of times. Instead move the NULL check to early in
the function. Also assign NULL to dflt_dpbp after free in both dpbp_init
and dpbp_exit.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Andrew Goodbody
2025-08-04 17:56:57 +01:00
committed by Peng Fan
parent 756580d090
commit 9ca756cee7

View File

@@ -1438,6 +1438,7 @@ err_close:
err_open:
err_create:
free(dflt_dpbp);
dflt_dpbp = NULL;
err_calloc:
return err;
}
@@ -1446,6 +1447,9 @@ static int dpbp_exit(void)
{
int err;
if (!dflt_dpbp)
return -ENODEV;
err = dpbp_destroy(dflt_mc_io, dflt_dprc_handle, MC_CMD_NO_FLAGS,
dflt_dpbp->dpbp_id);
if (err < 0) {
@@ -1457,8 +1461,8 @@ static int dpbp_exit(void)
printf("Exit: DPBP.%d\n", dflt_dpbp->dpbp_attr.id);
#endif
if (dflt_dpbp)
free(dflt_dpbp);
free(dflt_dpbp);
dflt_dpbp = NULL;
return 0;
err: