[PATCH] lwip: wget: process legacy url with strncpy
Jerome Forissier
jerome.forissier at linaro.org
Thu Nov 28 15:56:50 CET 2024
On 11/28/24 15:36, Adriano Cordova wrote:
> Commit 356011f ("lwip: fix code style issues") changed two strncpy calls to
> strlcpy calls in the function net/lwip/wget.c:parse_legacy_args, but this
> breaks the correct parsing of a legacy url. strlcpy expects the size of the
> destination buffer, not of the amount of bytes to be copied, and it will stop
> when the buffer ends or when a null is found, but here we want to copy a
> specific amount of bytes and there is no null at the end of that specific
> amount of bytes. The change is reverted here. Optionally, all the calls to
> strlcpy(,,n) could be changed to strlcpy(,,n+1).
> Fixes: 356011f ("lwip: fix code style issues")
>
> Signed-off-by: Adriano Cordova <adrianox at gmail.com>
> ---
> net/lwip/wget.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/lwip/wget.c b/net/lwip/wget.c
> index 83ae8a6d15..af48d741a4 100644
> --- a/net/lwip/wget.c
> +++ b/net/lwip/wget.c
> @@ -180,7 +180,7 @@ static int parse_legacy_arg(char *arg, char *nurl, size_t rem)
>
> if (rem < n)
> return -1;
> - strlcpy(p, server, n);
> + strncpy(p, server, n);
> p += n;
> rem -= n;
> if (rem < 1)
> @@ -191,7 +191,7 @@ static int parse_legacy_arg(char *arg, char *nurl, size_t rem)
> n = strlen(path);
> if (rem < n)
> return -1;
> - strlcpy(p, path, n);
> + strncpy(p, path, n);
> p += n;
> rem -= n;
> if (rem < 1)
I already sent the same fix as [1].
[1] https://lists.denx.de/pipermail/u-boot/2024-November/573054.html
Thanks,
--
Jerome
More information about the U-Boot
mailing list