[PATCH 1/1] net: lwip: check if network device is available in do_dhcp
Jerome Forissier
jerome.forissier at linaro.org
Thu Dec 5 22:14:14 CET 2024
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 <heinrich.schuchardt at canonical.com>
> ---
> 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 <jerome.forissier at linaro.org>
Thanks,
--
Jerome
More information about the U-Boot
mailing list