[PATCH] net: lwip: fix dhcp_loop()

The local variables ipstr, maskstr and gwstr in static function dhcp_loop() 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 at linaro.org> Signed-off-by: Jerome Forissier jerome.forissier@linaro.org --- net/lwip/dhcp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c index 23b56226921..bfc72ca6c57 100644 --- a/net/lwip/dhcp.c +++ b/net/lwip/dhcp.c @@ -27,9 +27,9 @@ static void call_lwip_dhcp_fine_tmr(void *ctx)
static int dhcp_loop(struct udevice *udev) { - 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"; unsigned long start; struct netif *netif; struct dhcp *dhcp;

On Fri, 22 Nov 2024 at 14:36, Jerome Forissier jerome.forissier@linaro.org wrote:
The local variables ipstr, maskstr and gwstr in static function dhcp_loop() 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 at linaro.org>
@ But I guess we can fix that up during merging
Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org
Signed-off-by: Jerome Forissier jerome.forissier@linaro.org
net/lwip/dhcp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c index 23b56226921..bfc72ca6c57 100644 --- a/net/lwip/dhcp.c +++ b/net/lwip/dhcp.c @@ -27,9 +27,9 @@ static void call_lwip_dhcp_fine_tmr(void *ctx)
static int dhcp_loop(struct udevice *udev) {
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"; unsigned long start; struct netif *netif; struct dhcp *dhcp;
-- 2.43.0

On 11/22/24 13:37, Ilias Apalodimas wrote:
On Fri, 22 Nov 2024 at 14:36, Jerome Forissier jerome.forissier@linaro.org wrote:
The local variables ipstr, maskstr and gwstr in static function dhcp_loop() 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 at linaro.org>
@ But I guess we can fix that up during merging
Sorry about that. Bad copy/paste from the ML web page ;)

On Fri, Nov 22, 2024 at 01:35:29PM +0100, Jerome Forissier wrote:
The local variables ipstr, maskstr and gwstr in static function dhcp_loop() 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 Signed-off-by: Jerome Forissier jerome.forissier@linaro.org Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org
Applied to u-boot/master, thanks!
participants (3)
-
Ilias Apalodimas
-
Jerome Forissier
-
Tom Rini