Eric Blake wrote: > On on older machine (2.6.16.29 kernel, glibc 3.4.6), when using /proc > emulation, openat(fd,"",O_RDONLY) was accidentally succeeding in opening a > copy of /proc/self/fd/n (ie. the directory pointed to by fd) instead of > failing with ENOENT. Fixed as follows. Fortunately, in a quick audit, I > didn't see any code path in fts or coreutils that seems like it would pass > an empty argument to openat, which is why my test-openat-safer was the > first thing to catch this in nearly 3 years of use. > > -- > Don't work too hard, make some time for fun as well! > > Eric Blake e...@byu.net >>From c46ae39631773a7fdae7d171cc4ef0bf2123efff Mon Sep 17 00:00:00 2001 > From: Eric Blake <e...@byu.net> > Date: Fri, 4 Sep 2009 21:22:21 -0600 > Subject: [PATCH] openat: fail with ENOENT on empty name > > * lib/openat-proc.c (openat_proc_name): Special-case the empty > buffer. > > Signed-off-by: Eric Blake <e...@byu.net> > --- > ChangeLog | 4 ++++ > lib/openat-proc.c | 7 +++++++ > 2 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index 193ec7f..ecbf16e 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,5 +1,9 @@ > 2009-09-04 Eric Blake <e...@byu.net> > > + openat: fail with ENOENT on empty name > + * lib/openat-proc.c (openat_proc_name): Special-case the empty > + buffer.
Good catch. Thanks.