This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][PATCH][BZ 15846] Add error reporting (via errno) to getauxval().
- From: Brooks Moses <bmoses at google dot com>
- To: Ondřej Bílka <neleai at seznam dot cz>
- Cc: libc-alpha <libc-alpha at sourceware dot org>, Rich Felker <dalias at aerifal dot cx>, Paul Pluzhnikov <ppluzhnikov at google dot com>
- Date: Tue, 10 Dec 2013 01:36:25 -0800
- Subject: Re: [RFC][PATCH][BZ 15846] Add error reporting (via errno) to getauxval().
- Authentication-results: sourceware.org; auth=none
- References: <1386664513-28730-1-git-send-email-bmoses at google dot com> <20131210091119 dot GA5696 at domone dot podge>
On Tue, Dec 10, 2013 at 1:11 AM, OndÅej BÃlka <neleai@seznam.cz> wrote:
> On Tue, Dec 10, 2013 at 12:35:13AM -0800, Brooks Moses wrote:
>> As discussed in the recent thread on my $EXEC_ORIGIN patch and in BZ way
>> of reporting an error condition. It currently returns zero on error,
>> but this may also be a valid result for some auxv entries. As there is
>> no clear invalid result for all current and future auxv entries, this
>> patch sets errno (following a suggestion in the BZ entry).
>>
>> This is still an RFC because I haven't yet tested it; at present it's a
>> strawman to confirm that the proposed solution has consensus approval.
>
> In implementation you need to also clear errno otherwise it could
> originate from previous getaddrinfo or such.
I don't think that's the right approach. As Rich suggested in the
initial bug, this would be documented to set errno in case of error,
or leave it unmodified on a successful exit.
This is consistent with established behavior in other functions that
use errno to signal error conditions --
http://www.gnu.org/software/libc/manual/html_node/Checking-for-Errors.html
says that for those functions, "if you want to check to see whether an
error occurred, the recommended method is to set errno to zero before
calling the function, and then check its value afterward."
Thanks,
- Brooks