mirror of
https://git.savannah.gnu.org/git/tar.git
synced 2026-04-23 10:00:37 +00:00
(check_compressed_archive): Detect files smaller than 512 bytes.
This commit is contained in:
11
src/buffer.c
11
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user