bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] misidentified tar.bz2 file


From: Sergey Poznyakoff
Subject: Re: [Bug-tar] misidentified tar.bz2 file
Date: Thu, 19 Feb 2015 17:02:53 +0200

Hi Sam,

Please try the attached patch.

Regards,
Sergey

>From 1847ec67cec36a17354115374954fea211d1f0da Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <address@hidden>
Date: Thu, 19 Feb 2015 17:00:58 +0200
Subject: [PATCH] Improve compression format recognition

Some comressed archives can pass the checksum test, which makes tar
treat them as uncompressed archives.

* src/buffer.c (check_compressed_archive): Test the checksum only
if the block we read looks like a valid tar header (i.e. has
a magic string).
---
 src/buffer.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/buffer.c b/src/buffer.c
index a7d8971..1a96595 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -391,7 +391,10 @@ check_compressed_archive (bool *pshort)
   /* Restore global values */
   read_full_records = sfr;

-  if (tar_checksum (record_start, true) == HEADER_SUCCESS)
+  if ((strcmp (record_start->header.magic, TMAGIC) == 0 ||
+       strcmp (record_start->buffer + offsetof (struct posix_header, magic),
+              OLDGNU_MAGIC) == 0) &&
+      tar_checksum (record_start, true) == HEADER_SUCCESS)
     /* Probably a valid header */
     return ct_tar;

--
1.7.12.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]