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] Add pthread_detach_pwd call.


On 10/21/2013 02:42 PM, Joseph S. Myers wrote:
On Mon, 21 Oct 2013, Florian Weimer wrote:

Feel free to propose/implement new *at functions for glibc.  That doesn't
depend on kernel support (although kernel support would be good) because
you can implement them in userspace using /proc/self/fd, just like many
existing fallback implementations for !__ASSUME_ATFCTS.

Interesting.  Is constructing such names

       static const char procfd[] = "/proc/self/fd/%d/%s";

race-free?  I'm asking because the /proc/self/fd entries are presented as
symbolic links.

I don't see why this technique would involve any races different from a
direct syscall.  In both cases, if another thread changes the file
descriptor at the same time as the call, you can't predict whether the old
or new version would be used.

I was wondering if the kernel performs symlink resolution behind the scenes, or if it uses the file descriptor directly. But based on a quick experiment, it should be race-free. This looks rather nice.

--
Florian Weimer / Red Hat Product Security Team


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