This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] getaddrinfo: Use &errno has the errno pointer
- From: DJ Delorie <dj at redhat dot com>
- To: fweimer at redhat dot com (Florian Weimer)
- Cc: libc-alpha at sourceware dot org
- Date: Thu, 31 Aug 2017 13:49:06 -0400
- Subject: Re: [PATCH] getaddrinfo: Use &errno has the errno pointer
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=dj at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2481A461E0
My only real concern about this patch set is...
fweimer@redhat.com (Florian Weimer) writes:
> status = DL_CALL_FCT (fct, (name, _family, &th, \
> tmpbuf->data, tmpbuf->length, \
> - &rc, &herrno, NULL, &localcanon)); \
> - if (rc != ERANGE || herrno != NETDB_INTERNAL) \
> + &errno, &herrno, NULL, &localcanon)); \
> + if (errno != ERANGE || herrno != NETDB_INTERNAL) \
Are we sure that errno will not *already* be ERANGE when the function is
called? IIRC it's the app's responsibility to zero it out after it's
dealt with the errors, so there's a chance it will happen to have the
"right" error already, and you'll test a false positive here.
The original code avoided this by setting rc to 0 before calling.