mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
net: fsl-mc: NULL check dflt_dpio before dereference
In dpio_exit there is a NULL check for dflt_dpio but it happens after dpio_dflt has been dereferenced a number of times already. Instead move the NULL check to first thing in the function. Also assign NULL to dflt_dpio after free in both dpio_init and dpio_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:
committed by
Peng Fan
parent
f4c2a12611
commit
756580d090
@@ -1178,6 +1178,7 @@ err_get_api_ver:
|
||||
dflt_dpio->dpio_id);
|
||||
err_create:
|
||||
free(dflt_dpio);
|
||||
dflt_dpio = NULL;
|
||||
err_calloc:
|
||||
return err;
|
||||
}
|
||||
@@ -1186,6 +1187,9 @@ static int dpio_exit(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (!dflt_dpio)
|
||||
return -ENODEV;
|
||||
|
||||
err = dpio_disable(dflt_mc_io, MC_CMD_NO_FLAGS, dflt_dpio->dpio_handle);
|
||||
if (err < 0) {
|
||||
printf("dpio_disable() failed: %d\n", err);
|
||||
@@ -1211,8 +1215,8 @@ static int dpio_exit(void)
|
||||
printf("Exit: DPIO.%d\n", dflt_dpio->dpio_id);
|
||||
#endif
|
||||
|
||||
if (dflt_dpio)
|
||||
free(dflt_dpio);
|
||||
free(dflt_dpio);
|
||||
dflt_dpio = NULL;
|
||||
|
||||
return 0;
|
||||
err:
|
||||
|
||||
Reference in New Issue
Block a user