From 75345fa915fc2d7c9a67bf365ace94c40d86cf18 Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 12 Apr 1988 19:34:38 +0000 Subject: [PATCH] make a little more robust --- util/arch/archiver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/arch/archiver.c b/util/arch/archiver.c index c8064b9b0..d2bf5535c 100644 --- a/util/arch/archiver.c +++ b/util/arch/archiver.c @@ -253,6 +253,9 @@ get_member() again: if (rd_arhdr(ar_fd, &member) == 0) return NIL_MEM; + if (member.ar_size < 0) { + error(TRUE, "archive has member with negative size\n"); + } #ifdef AAL if (equal(SYMDEF, member.ar_name)) { lseek(ar_fd, member.ar_size, 1); @@ -499,7 +502,7 @@ int from, to; } if (to >= 0) mwrite(to, io_buffer, rest); mem_size -= (long) rest; - } while (mem_size != 0L); + } while (mem_size > 0L); if (is_odd) { lseek(from, 1L, 1); -- 2.34.1