On 12/5/24 20:17, Heinrich Schuchardt wrote:
> eth_get_dev() returns NULL if no network device is available.
> Not checking the return value leads to a crash when the device
> pointer is dereferenced.
> 
> Signed-off-by: Heinrich Schuchardt <[email protected]>
> ---
>  net/lwip/dhcp.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c
> index 9b882cf5b87..e7d9147455c 100644
> --- a/net/lwip/dhcp.c
> +++ b/net/lwip/dhcp.c
> @@ -3,6 +3,7 @@
>  
>  #include <command.h>
>  #include <console.h>
> +#include <log.h>
>  #include <dm/device.h>
>  #include <linux/delay.h>
>  #include <linux/errno.h>
> @@ -112,10 +113,17 @@ static int dhcp_loop(struct udevice *udev)
>  int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>  {
>       int ret;
> +     struct udevice *dev;
>  
>       eth_set_current();
>  
> -     ret = dhcp_loop(eth_get_dev());
> +     dev = eth_get_dev();
> +     if (!dev) {
> +             log_err("No network device\n");
> +             return CMD_RET_FAILURE;
> +     }
> +
> +     ret = dhcp_loop(dev);
>       if (ret)
>               return ret;
>  

Reviewed-by: Jerome Forissier <[email protected]>

Thanks,
-- 
Jerome

Reply via email to