From: Carlos O'Donell via Libc-alpha <libc-alpha@sourceware.org>
To: Florian Weimer <fweimer@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions
Date: Thu, 15 Jul 2021 01:00:00 -0400 [thread overview]
Message-ID: <88f44288-397c-6da6-2fc7-78e0b9fc2426@redhat.com> (raw)
In-Reply-To: <8eab562b79d8cfc647668a5a669baec4f303ba93.1625755445.git.fweimer@redhat.com>
On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:
OK for glibc 2.34.
Tested without regression on x86_64 and i686.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
> ---
> resolv/nss_dns/dns-canon.c | 13 ++++++++-----
> resolv/nss_dns/dns-host.c | 28 ++++++++++++----------------
> 2 files changed, 20 insertions(+), 21 deletions(-)
>
> diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
> index cb321a0650..1cdc9a86c9 100644
> --- a/resolv/nss_dns/dns-canon.c
> +++ b/resolv/nss_dns/dns-canon.c
> @@ -150,15 +150,18 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
> if (type != ns_t_cname)
> goto unavail;
>
> - if (__ns_get16 (ptr) != ns_c_in)
> + uint16_t rrclass;
> + NS_GET16 (rrclass, ptr);
> + if (rrclass != ns_c_in)
OK. This advances by NS_INT16SZ (which previously did not).
> goto unavail;
>
> - /* Also skip over class and TTL. */
> - ptr += sizeof (uint16_t) + sizeof (uint32_t);
> + /* Skip over TTL. */
> + ptr += sizeof (uint32_t);
OK. This fixes the advance.
>
> /* Skip over RDATA length and RDATA itself. */
> - uint16_t rdatalen = __ns_get16 (ptr);
> - ptr += sizeof (uint16_t);
> + uint16_t rdatalen;
> + NS_GET16 (rdatalen, ptr);
OK. No ptr += because NS_GET16 advances by NS_INT16SZ.
> +
> /* Not enough room for RDATA. */
> if (endptr - ptr < rdatalen)
> goto unavail;
> diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
> index 47e851db55..d6a69a602a 100644
> --- a/resolv/nss_dns/dns-host.c
> +++ b/resolv/nss_dns/dns-host.c
> @@ -782,14 +782,11 @@ getanswer_r (struct resolv_context *ctx,
> continue;
> }
>
> - type = __ns_get16 (cp);
> - cp += INT16SZ; /* type */
> - class = __ns_get16 (cp);
> - cp += INT16SZ; /* class */
> - int32_t ttl = __ns_get32 (cp);
> - cp += INT32SZ; /* TTL */
> - n = __ns_get16 (cp);
> - cp += INT16SZ; /* len */
> + NS_GET16 (type, cp);
> + NS_GET16 (class, cp);
> + int32_t ttl;
> + NS_GET32 (ttl, cp);
> + NS_GET16 (n, cp); /* RDATA length. */
OK.
>
> if (end_of_message - cp < n)
> {
> @@ -1116,14 +1113,13 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
> continue;
> }
>
> - int type = __ns_get16 (cp);
> - cp += INT16SZ; /* type */
> - int class = __ns_get16 (cp);
> - cp += INT16SZ; /* class */
> - int32_t ttl = __ns_get32 (cp);
> - cp += INT32SZ; /* TTL */
> - n = __ns_get16 (cp);
> - cp += INT16SZ; /* len */
> + uint16_t type;
> + NS_GET16 (type, cp);
> + uint16_t class;
> + NS_GET16 (class, cp);
> + int32_t ttl;
> + NS_GET32 (ttl, cp);
> + NS_GET16 (n, cp); /* RDATA length. */
OK.
>
> if (end_of_message - cp < n)
> {
>
--
Cheers,
Carlos.
next prev parent reply other threads:[~2021-07-15 5:02 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
2021-07-08 18:02 ` Adhemerval Zanella via Libc-alpha
2021-07-15 4:59 ` Carlos O'Donell via Libc-alpha
2021-07-08 14:59 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer via Libc-alpha
2021-07-08 18:32 ` Adhemerval Zanella via Libc-alpha
2021-07-15 4:59 ` Carlos O'Donell via Libc-alpha
2021-07-08 14:59 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer via Libc-alpha
2021-07-08 18:33 ` Adhemerval Zanella via Libc-alpha
2021-07-15 4:59 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:00 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha [this message]
2021-07-08 15:00 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:00 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:00 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-15 6:53 ` Florian Weimer via Libc-alpha
2021-07-08 15:00 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:01 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:01 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
2021-07-15 5:00 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:01 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:02 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:02 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:03 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:03 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:03 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:04 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:04 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:05 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:05 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:05 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:05 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
2021-07-15 5:01 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:06 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:06 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:06 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:06 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:06 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:07 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:07 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-08 15:07 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
2021-07-08 15:42 ` Florian Weimer via Libc-alpha
2021-07-15 5:02 ` Carlos O'Donell via Libc-alpha
2021-07-15 7:09 ` Florian Weimer via Libc-alpha
2021-07-15 12:21 ` Carlos O'Donell via Libc-alpha
2021-07-15 4:58 ` [PATCH v2 00/30] nss_dns move into libc Carlos O'Donell via Libc-alpha
-- strict thread matches above, loose matches on Subject: below --
2021-07-02 18:47 [PATCH 00/30] Move nss_dns " Florian Weimer via Libc-alpha
2021-07-02 18:47 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer via Libc-alpha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=88f44288-397c-6da6-2fc7-78e0b9fc2426@redhat.com \
--to=libc-alpha@sourceware.org \
--cc=carlos@redhat.com \
--cc=fweimer@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).