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; }