Well, I've gone through hell trying to fix the rename()/rmdir()/remove()
    races and failed utterly.  There are far more race conditions then even
    my last posting indicated, and there are *severe* problems fixing NFS
    to deal with even Ian's suggestion... it turns out that NFS's nfs_namei()
    permanently adjusts the mbuf while processing the path name, making
    restarts impossible.

    The only solution is to implement namei cache path locking and formalize
    the 'nameidata' structure, which means ripping up a lot of code because
    nearly the entire code base currently plays with the contents of 
    'nameidata' willy-nilly.  Nothing else will work.  It's not something
    that I can consider doing now.

    In the mean time I am going to remove the panic()'s in question.  This
    means that in ufs_rename() the machine will silently ignore the race 
    (not do the rename) instead of panic.  It's all that can be done for
    the moment.  It solve the security/attack issue.  We'll have to attack
    the races as a separate issue.  The patch to remove the panics is utterly
    trivial and I will commit it after I test it.

                                                -Matt



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to