ref: d987ac9a2b152cff62da8096e509eddf28f3c8f0
parent: 1d220602ef785d0b3c436123ddb51bd40a976b83
parent: 3bfb3402176bfad373f4f0a4f5647dc8e7b8e1d7
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Thu Oct 3 13:31:55 EDT 2013
merge
--- a/sys/src/cmd/tapefs/tarfs.c
+++ b/sys/src/cmd/tapefs/tarfs.c
@@ -144,10 +144,12 @@
}
f.mode &= DMDIR | 0777;
- /* make file name safe and canonical */
+ /* make file name safe, canonical and free of . and .. */
while (fname[0] == '/') /* don't allow absolute paths */
++fname;
cleanname(fname);
+ while (strncmp(fname, "../", 3) == 0)
+ fname += 3;
/* reject links */
linkflg = hp->linkflag == LF_SYMLINK1 ||
--
⑨