[PATCH] getaddrinfo: Use &errno has the errno pointer
Florian Weimer
fweimer@redhat.com
Thu Aug 31 18:39:00 GMT 2017
On 08/31/2017 07:49 PM, DJ Delorie wrote:
>
> 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.
It does not. See bug 21915. This is fixed by a later patch is the series:
<https://sourceware.org/ml/libc-alpha/2017-08/msg00292.html>
Does this answer your question?
Thanks,
Florian
More information about the Libc-alpha
mailing list