This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC][PATCH][BZ 15846] Add error reporting (via errno) to getauxval().


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]