Skip to content

Commit 64ff7ab

Browse files
committed
Fix entry name length. Ustar limits name to 100 symbols, it does not include terminating symbol
1 parent e012155 commit 64ff7ab

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

src/Tar/TarHeader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ public static int GetNameBytes(string name, int nameOffset, byte[] buffer, int b
896896

897897
int i;
898898

899-
for (i = 0 ; i < length - 1 && nameOffset + i < name.Length; ++i) {
899+
for (i = 0 ; i < length && nameOffset + i < name.Length; ++i) {
900900
buffer[bufferOffset + i] = (byte)name[nameOffset + i];
901901
}
902902

src/Tar/TarOutputStream.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ public void PutNextEntry(TarEntry entry)
278278
throw new ArgumentNullException("entry");
279279
}
280280

281-
if (entry.TarHeader.Name.Length >= TarHeader.NAMELEN) {
281+
if (entry.TarHeader.Name.Length > TarHeader.NAMELEN) {
282282
TarHeader longHeader = new TarHeader();
283283
longHeader.TypeFlag = TarHeader.LF_GNU_LONGNAME;
284284
longHeader.Name = longHeader.Name + "././@LongLink";

0 commit comments

Comments
 (0)