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: [PATCH] elf/dl-load.c: Remove local_strdup.


> I see that __strsep in dl-load.c is called with double underscore,
> but why not strlen? Is it because for these routines, which are
> always in ld.so, we rely on the ld.so copies of them?

strlen is part of the most restricted name space (C89).  strsep and strdup
are not.  Remember that this code can also be linked statically (it's part
of libc.a).  In ld.so proper, it doesn't matter concretely because it does
not export these symbols and so will always use its own copies.

> I also thought for a second that a strcpy that went into the PLT
> would trigger check-localplt failures, but then I saw ld.so is not
> part of that test? Any reason why not?

It's a surprise to me too, and I had to check to convince myself it really
wasn't tested somehow.  I don't see any reason it shouldn't be per se.  Add
it to the list and verify nothing goes wrong.  But there are reasons it's
far less likely ever to be a problem.  ld.so has no dependencies and is
built with -z defs, so it can never have undefined references and can never
have PLT entries for anything but its own exported symbols (unless the
linker grows new bugs).  There is a very small set of exported symbols
(elf/Versions) that almost never changes.


Thanks,
Roland


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