lib9p: fix .. walk crash in deleted directory (thanks BurnZeZ)

to reproduce:

 % ramfs; cd /tmp
 % mkdir foo; cd foo
 % pwd
 /tmp/foo
 % rm /tmp/foo
 % pwd
 /tmp/foo
 % ls
 % ls /tmp
 % ls ..
 ramfs 202751: suicide: sys: trap: fault read addr=0x0 pc=0x0000e46d
 ls: ..: '..' mount rpc error
This commit is contained in:
cinap_lenrek 2014-10-23 23:59:16 +02:00
parent 16e08adb32
commit 89e6315699

View file

@ -254,7 +254,8 @@ walkfile1(File *dir, char *elem)
rlock(dir);
if(strcmp(elem, "..") == 0){
fp = dir->parent;
incref(fp);
if(fp != nil)
incref(fp);
runlock(dir);
closefile(dir);
return fp;