From: Sergey Poznyakoff Date: Fri, 24 Aug 2007 12:07:32 +0000 (+0000) Subject: (check_compressed_archive): Detect files smaller than 512 bytes. X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftar;a=commitdiff_plain;h=7c0b81cbb9790ab9402e983a4d677a8ebde010d5 (check_compressed_archive): Detect files smaller than 512 bytes. --- diff --git a/src/buffer.c b/src/buffer.c index 13e1c13..cea5f25 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -235,14 +235,16 @@ check_compressed_archive () { struct zip_magic const *p; bool sfr; - + bool short_file = false; + /* Prepare global data needed for find_next_block: */ record_end = record_start; /* set up for 1st record = # 0 */ sfr = read_full_records; read_full_records = true; /* Suppress fatal error on reading a partial record */ - find_next_block (); - + if (find_next_block () == 0) + short_file = true; + /* Restore global values */ read_full_records = sfr; @@ -254,6 +256,9 @@ check_compressed_archive () if (memcmp (record_start->buffer, p->magic, p->length) == 0) return p->type; + if (short_file) + ERROR ((0, 0, _("This does not look like a tar archive"))); + return ct_none; }