diff mbox series

net: lwip: fix get_udev_ipv4_info()

Message ID 20241118143125.2258888-1-jerome.forissier@linaro.org
State Accepted
Commit 7d80e7368e1012355695e1fb580e5b20c8de03b9
Headers show
Series net: lwip: fix get_udev_ipv4_info() | expand

Commit Message

Jerome Forissier Nov. 18, 2024, 2:31 p.m. UTC
The local variables ipstr, maskstr and gwstr in static function
get_udev_ipv4_info() cannot be pointers to read-only data, since
they may be written to in case the device index is > 0. Therefore
make them char arrays allocated on the stack.

Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reported-by: Adriano Cordova <adrianox@gmail.com>
Link: https://lists.denx.de/pipermail/u-boot/2024-November/572066.html
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
---
 net/lwip/net-lwip.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Ilias Apalodimas Nov. 18, 2024, 2:37 p.m. UTC | #1
On Mon, 18 Nov 2024 at 16:31, Jerome Forissier
<jerome.forissier@linaro.org> wrote:
>
> The local variables ipstr, maskstr and gwstr in static function
> get_udev_ipv4_info() cannot be pointers to read-only data, since
> they may be written to in case the device index is > 0. Therefore
> make them char arrays allocated on the stack.
>
> Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Reported-by: Adriano Cordova <adrianox@gmail.com>
> Link: https://lists.denx.de/pipermail/u-boot/2024-November/572066.html
> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
> ---
>  net/lwip/net-lwip.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c
> index 470217781a4..b863047f598 100644
> --- a/net/lwip/net-lwip.c
> +++ b/net/lwip/net-lwip.c
> @@ -91,9 +91,9 @@ struct netif *net_lwip_get_netif(void)
>  static int get_udev_ipv4_info(struct udevice *dev, ip4_addr_t *ip,
>                               ip4_addr_t *mask, ip4_addr_t *gw)
>  {
> -       char *ipstr = "ipaddr\0\0";
> -       char *maskstr = "netmask\0\0";
> -       char *gwstr = "gatewayip\0\0";
> +       char ipstr[] = "ipaddr\0\0";
> +       char maskstr[] = "netmask\0\0";
> +       char gwstr[] = "gatewayip\0\0";
>         int idx = dev_seq(dev);
>         char *env;
>
> --
> 2.40.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tom Rini Nov. 23, 2024, 2:42 a.m. UTC | #2
On Mon, Nov 18, 2024 at 03:31:25PM +0100, Jerome Forissier wrote:

> The local variables ipstr, maskstr and gwstr in static function
> get_udev_ipv4_info() cannot be pointers to read-only data, since
> they may be written to in case the device index is > 0. Therefore
> make them char arrays allocated on the stack.
> 
> Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Reported-by: Adriano Cordova <adrianox@gmail.com>
> Link: https://lists.denx.de/pipermail/u-boot/2024-November/572066.html
> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c
index 470217781a4..b863047f598 100644
--- a/net/lwip/net-lwip.c
+++ b/net/lwip/net-lwip.c
@@ -91,9 +91,9 @@  struct netif *net_lwip_get_netif(void)
 static int get_udev_ipv4_info(struct udevice *dev, ip4_addr_t *ip,
 			      ip4_addr_t *mask, ip4_addr_t *gw)
 {
-	char *ipstr = "ipaddr\0\0";
-	char *maskstr = "netmask\0\0";
-	char *gwstr = "gatewayip\0\0";
+	char ipstr[] = "ipaddr\0\0";
+	char maskstr[] = "netmask\0\0";
+	char gwstr[] = "gatewayip\0\0";
 	int idx = dev_seq(dev);
 	char *env;