Justus Winter, le Wed 04 Dec 2013 12:11:54 +0100, a écrit : > Previously, fakeroot failed to create files in certain circumstances, > e. g. assuming /tmp is a tmpfs and /tmp/some_file does not exist: > > % cd /tmp && fakeroot-hurd /bin/sh -c ':>/tmp/some_file' > /bin/sh: 1: cannot create /tmp/some_file: Is a directory > > Fix this by sanitizing the flags value not to contain O_WRITE if we're > not at the last path component. > > * trans/fakeroot.c (netfs_S_dir_lookup): Strip O_WRITE from flags when > looking up all but the last path component.
Ack. > --- > trans/fakeroot.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/trans/fakeroot.c b/trans/fakeroot.c > index 679e476..b6938dc 100644 > --- a/trans/fakeroot.c > +++ b/trans/fakeroot.c > @@ -307,6 +307,10 @@ netfs_S_dir_lookup (struct protid *diruser, > /* We already know about this node. */ > mach_port_deallocate (mach_task_self (), idport); > pthread_mutex_lock (&np->lock); > + if (retry_name[0] != '\0') > + /* This was not the last component, remove O_WRITE to > + avoid opening directories with it. */ > + flags &= ~O_WRITE; > err = check_openmodes (np->nn, (flags & (O_RDWR|O_EXEC)), file); > if (!err) > netfs_nref (np); > -- > 1.7.10.4 > -- Samuel <D> I hated the Mighty Mouse in the Apple Store every time I played with it. I hated the Mighty Mouse at work whenever I set up a Mac for somebody. <D> I decided to give it one last chance when I set up my new Mac <D> And golly, I like it at home. <D> Maybe mine is defective in a way that makes it good.
