diff options
author | rsc <rsc> | 2007-08-08 09:08:29 +0000 |
---|---|---|
committer | rsc <rsc> | 2007-08-08 09:08:29 +0000 |
commit | 5f0c20ec14dc1c97519e0843d715fd91b430e77c (patch) | |
tree | 36bb459eee034c54d7501407fb8e73fbe74d8074 /fs.c | |
parent | 5bbba977d1257659485a924d01f1975e5d5f2c91 (diff) | |
download | xv6-labs-5f0c20ec14dc1c97519e0843d715fd91b430e77c.tar.gz xv6-labs-5f0c20ec14dc1c97519e0843d715fd91b430e77c.tar.bz2 xv6-labs-5f0c20ec14dc1c97519e0843d715fd91b430e77c.zip |
fix . .. unlink bug
Diffstat (limited to 'fs.c')
-rw-r--r-- | fs.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -579,6 +579,12 @@ namei(char *path, int mode, uint *ret_off, found: if(mode == NAMEI_DELETE && *cp == '\0'){ + // can't unlink . and .. + if((i == 1 && memcmp(cp-1, ".", 1) == 0) || + (i == 2 && memcmp(cp-2, "..", 2) == 0)){ + iput(dp); + return 0; + } *ret_off = off; return dp; } |