From: ceriel Date: Tue, 12 Apr 1988 19:34:38 +0000 (+0000) Subject: make a little more robust X-Git-Tag: release-5-5~3443 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=75345fa915fc2d7c9a67bf365ace94c40d86cf18;p=ack.git make a little more robust --- 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);