From 89e63156991a50263eb6481934ce1c40e4a13036 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 23 Oct 2014 23:59:16 +0200 Subject: [PATCH] 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 --- sys/src/lib9p/file.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/src/lib9p/file.c b/sys/src/lib9p/file.c index 1dc324f63..54e09d278 100644 --- a/sys/src/lib9p/file.c +++ b/sys/src/lib9p/file.c @@ -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;