lkml.org 
[lkml]   [1998]   [Oct]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Linux 2.1.125 doesn't dump core on SIGSEGV
DateWed, 21 Oct 1998 00:28:01 +0100
FromDavid Woodhouse <>
alan@lxorguk.ukuu.org.uk said:
>  To wear a linus impersonator hat O_NOFOLLOW is the generic solution
> to that and a pile of other link handling problems 

I've been looking into that, and my head hurts. It looks too simple, so I'm
sure I'm reading it wrong.

What does the LOOKUP_FOLLOW flag to lookup_dentry() do?

open_namei() seems to call lookup_dentry() with LOOKUP_FOLLOW set by default, 
unless the flags passed to open_namei() include O_CREAT and O_EXCL...


        /*
         * Special case: O_CREAT|O_EXCL on a dangling symlink should
         * give EEXIST for security reasons.  While inconsistent, this
         * is the same scheme used by, for example, Solaris 2.5.1.  --KAB
         */
        dentry = lookup_dentry(pathname, NULL,
                               (flag & (O_CREAT|O_EXCL)) != (O_CREAT|O_EXCL));

So what happens if I add a new flags O_NOFOLLOW, and make open_namei clear the 
LOOKUP_FOLLOW bit when O_NOFOLLOW is set?

Judging by the comment extracted above, it'll behave correctly for the 
dangling symlink case, but not when the symlink points to a real file.

I suppose I should just try it.

----                                 ----                                 ----
David Woodhouse        David.Woodhouse@mvhi.com       Office: (+44) 1223 810302
 Project Leader,     Process Information Systems      Mobile: (+44) 976 658355
    Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
             finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:45    [from the cache]
©2003-2008