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] |
On 02 Apr 2016 12:57, Samuel Thibault wrote: > Systems without HAVE_AUX_VECTOR have GLRO(dl_auxv) == NULL, and > getauxval would thus crash. assuming this is for GNU/hurd > --- a/misc/getauxval.c > +++ b/misc/getauxval.c > @@ -30,9 +30,10 @@ __getauxval (unsigned long int type) > else if (type == AT_HWCAP2) > return GLRO(dl_hwcap2); > > - for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++) > - if (p->a_type == type) > - return p->a_un.a_val; > + if (GLRO(dl_auxv) != NULL) > + for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++) > + if (p->a_type == type) > + return p->a_un.a_val; should this just be under HAVE_AUX_VECTOR ? seems like we shouldn't even bother defining/exporting dl_auxv at all if it's disabled. then we wouldn't run into more latent problems like this at run time -- it would be a build failure. in looking at other uses of dl_auxv, why isn't _dl_sysdep_start an issue too ? rtld.c:_dl_start_final always calls that, and that func always walks GLRO(dl_auxv). -mike
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |