Skip to content

Commit 3fd4516

Browse files
committed
2 parents ed8c63a + b0e21aa commit 3fd4516

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

ICSharpCode.SharpZipLib/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

ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,14 +277,15 @@ public void PutNextEntry(TarEntry entry)
277277
throw new ArgumentNullException("entry");
278278
}
279279

280-
if (entry.TarHeader.Name.Length >= TarHeader.NAMELEN) {
280+
if (entry.TarHeader.Name.Length > TarHeader.NAMELEN) {
281281
TarHeader longHeader = new TarHeader();
282282
longHeader.TypeFlag = TarHeader.LF_GNU_LONGNAME;
283283
longHeader.Name = longHeader.Name + "././@LongLink";
284-
longHeader.UserId = 0;
285-
longHeader.GroupId = 0;
286-
longHeader.GroupName = "";
287-
longHeader.UserName = "";
284+
longHeader.Mode = 420;//644 by default
285+
longHeader.UserId = entry.UserId;
286+
longHeader.GroupId = entry.GroupId;
287+
longHeader.GroupName = entry.GroupName;
288+
longHeader.UserName = entry.UserName;
288289
longHeader.LinkName = "";
289290
longHeader.Size = entry.TarHeader.Name.Length + 1; // Plus one to avoid dropping last char
290291

0 commit comments

Comments
 (0)