This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC][PATCH][BZ 15846] Add error reporting (via errno) to getauxval().
- From: Brooks Moses <bmoses at google dot com>
- To: libc-alpha at sourceware dot org, Rich Felker <dalias at aerifal dot cx>
- Cc: Paul Pluzhnikov <ppluzhnikov at google dot com>, Brooks Moses <bmoses at google dot com>
- Date: Tue, 10 Dec 2013 00:35:13 -0800
- Subject: [RFC][PATCH][BZ 15846] Add error reporting (via errno) to getauxval().
- Authentication-results: sourceware.org; auth=none
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.
---
2013-12-10 Brooks Moses <bmoses@google.com>
* misc/getauxval.c: Include errno.h.
(__getauxval): Set errno to ENOENT if the requested type is not
found.
misc/getauxval.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/misc/getauxval.c b/misc/getauxval.c
index e0317fd..dd4c8ec 100644
--- a/misc/getauxval.c
+++ b/misc/getauxval.c
@@ -16,6 +16,7 @@
<http://www.gnu.org/licenses/>. */
#include <sys/auxv.h>
+#include <errno.h>
#include <ldsodefs.h>
@@ -32,6 +33,8 @@ __getauxval (unsigned long int type)
for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++)
if (p->a_type == type)
return p->a_un.a_val;
+
+ __set_errno (ENOENT);
return 0;
}
--
1.8.5.1