21 lines
489 B
Diff
21 lines
489 B
Diff
|
diff --git a/src/tar.c b/src/tar.c
|
||
|
index 97d74bc..6de8961 100644
|
||
|
--- a/src/tar.c
|
||
|
+++ b/src/tar.c
|
||
|
@@ -48,10 +48,12 @@ split_long_name (const char *name, size_t length)
|
||
|
{
|
||
|
size_t i;
|
||
|
|
||
|
- if (length > TARPREFIXSIZE)
|
||
|
- length = TARPREFIXSIZE+2;
|
||
|
+ if (length > TARPREFIXSIZE + 1)
|
||
|
+ length = TARPREFIXSIZE + 1;
|
||
|
+ else if (ISSLASH (name[length - 1]))
|
||
|
+ length--;
|
||
|
for (i = length - 1; i > 0; i--)
|
||
|
- if (name[i] == '/')
|
||
|
+ if (ISSLASH (name[i]))
|
||
|
break;
|
||
|
return i;
|
||
|
}
|