On Thu, Jul 02, 2015 at 10:44:26AM -0400, Christopher Covington wrote: > Hi Rob, > > On 06/29/2015 04:26 PM, Rob Landley wrote: > > On 06/28/2015 09:57 PM, Rich Felker wrote: > > >> but the latter could be dangerous not to have setup right. > >> I *think* (this needs checking) the new thread created manually by > >> clone will use the same TLS pointer as the thread that called clone. > >> In this case, libc internals will potentially be reading and writing > >> the same data, without any synchronization. > > > > See "decided to just use fork(), which means re-exec /proc/self/exe as > > necessary because exec(NULL) doesn't re-exec yourself despite multiple > > proposals over the year that the kernel just DO that since the kernel > > knows the right inode even if proc isn't mounted"... > > Is the following much different from the desired exec(NULL) behavior you're > describing? > > > For example, if you have an open file descriptor on an executable file, you > > can execute it by calling execveat(), passing the file descriptor, an empty > > path, and the AT_EMPTY_PATH flag. > > https://lwn.net/Articles/649115/
It doesn't help, because a program does not have an open file descriptor to its executable file. Obtaining one is just as hard as obtaining a pathname (or using /proc/self/exe). Rich _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
