18 lines
672 B
Diff
18 lines
672 B
Diff
|
--- pax-3.4/src/tar.c.abs100 2005-08-01 18:17:58.000000000 +0200
|
||
|
+++ pax-3.4/src/tar.c 2007-06-20 10:44:54.000000000 +0200
|
||
|
@@ -1181,6 +1181,14 @@ name_split (name, len)
|
||
|
* prefix we can find)
|
||
|
*/
|
||
|
start = name + len - TNMSZ;
|
||
|
+ /* if filename is absolute and exactly TNMSZ in length,
|
||
|
+ * before we invoke the strict interpretation of /str below, we
|
||
|
+ * check to see if there is another slash further along which
|
||
|
+ * would allow a safe split. if this search fails then we hit
|
||
|
+ * the end of the string and fail in a similar manner
|
||
|
+ */
|
||
|
+ if((start == name) && (*start == '/'))
|
||
|
+ ++start;
|
||
|
while ((*start != '\0') && (*start != '/'))
|
||
|
++start;
|
||
|
|