36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From cb07844454d8cc9fb21f53ace75975f91185a120 Mon Sep 17 00:00:00 2001
|
|
From: Sergey Poznyakoff <gray@gnu.org>
|
|
Date: Mon, 14 Jan 2019 15:22:09 +0200
|
|
Subject: [PATCH] Fix possible NULL dereference (savannah bug #55369)
|
|
|
|
* src/sparse.c (pax_decode_header): Check return from find_next_block.
|
|
---
|
|
src/sparse.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/src/sparse.c b/src/sparse.c
|
|
index 55c874f..6ec069d 100644
|
|
--- a/src/sparse.c
|
|
+++ b/src/sparse.c
|
|
@@ -1247,6 +1247,8 @@ pax_decode_header (struct tar_sparse_file *file)
|
|
set_next_block_after (b); \
|
|
file->dumped_size += BLOCKSIZE; \
|
|
b = find_next_block (); \
|
|
+ if (!b) \
|
|
+ FATAL_ERROR ((0, 0, _("Unexpected EOF in archive"))); \
|
|
src = b->buffer; \
|
|
endp = b->buffer + BLOCKSIZE; \
|
|
} \
|
|
@@ -1259,6 +1261,8 @@ pax_decode_header (struct tar_sparse_file *file)
|
|
set_next_block_after (current_header);
|
|
file->dumped_size += BLOCKSIZE;
|
|
blk = find_next_block ();
|
|
+ if (!blk)
|
|
+ FATAL_ERROR ((0, 0, _("Unexpected EOF in archive")));
|
|
p = blk->buffer;
|
|
COPY_BUF (blk,nbuf,p);
|
|
if (!decode_num (&u, nbuf, TYPE_MAXIMUM (size_t)))
|
|
--
|
|
1.8.3.1
|
|
|