From: Pavel Raiskup Date: Mon, 14 Sep 2015 09:49:12 +0200 Subject: [PATCH 6/7] Fix for splitting long file names while creating ustar archive Resolves: #866467 diff --git a/src/tar.c b/src/tar.c index a2ce171..e2b5f45 100644 --- a/src/tar.c +++ b/src/tar.c @@ -49,10 +49,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; }