[PATCH v2 5/8] resolv: Check for inet_ntop failure in ns_sprintrrf
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed Jun 17 16:07:52 GMT 2026
On 16/06/26 13:31, Florian Weimer wrote:
> This makes the output more consistent (either failure or complete
> output) and helps with systematic testing with varying buffer
> sizes.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> resolv/ns_print.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/resolv/ns_print.c b/resolv/ns_print.c
> index 3d38876483..e58df5f35a 100644
> --- a/resolv/ns_print.c
> +++ b/resolv/ns_print.c
> @@ -167,8 +167,9 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
> switch (type) {
> case ns_t_a:
> if (rdlen != (size_t)NS_INADDRSZ)
> - goto formerr;
> - (void) inet_ntop(AF_INET, rdata, buf, buflen);
> + goto formerr;
> + if (inet_ntop (AF_INET, rdata, buf, buflen) == NULL)
> + return -1;
> addlen(strlen(buf), &buf, &buflen);
> break;
>
> @@ -334,9 +335,10 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
> }
>
> case ns_t_aaaa:
> - if (rdlen != (size_t)NS_IN6ADDRSZ)
> - goto formerr;
> - (void) inet_ntop(AF_INET6, rdata, buf, buflen);
> + if (rdlen != (size_t)NS_IN6ADDRSZ)
> + goto formerr;
> + if (inet_ntop (AF_INET6, rdata, buf, buflen) == NULL)
> + return -1;
> addlen(strlen(buf), &buf, &buflen);
> break;
>
> @@ -427,7 +429,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
> goto formerr;
>
> /* Address. */
> - (void) inet_ntop(AF_INET, rdata, buf, buflen);
> + if (inet_ntop (AF_INET, rdata, buf, buflen) == NULL)
> + return -1;
> addlen(strlen(buf), &buf, &buflen);
> rdata += NS_INADDRSZ;
>
> @@ -569,7 +572,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
> if (rdata + pbyte >= edata) goto formerr;
> memset(&a, 0, sizeof(a));
> memcpy(&a.s6_addr[pbyte], rdata, sizeof(a) - pbyte);
> - (void) inet_ntop(AF_INET6, &a, buf, buflen);
> + if (inet_ntop (AF_INET6, &a, buf, buflen) == NULL)
> + return -1;
> addlen(strlen(buf), &buf, &buflen);
> rdata += sizeof(a) - pbyte;
> }
More information about the Libc-alpha
mailing list