make a little more robust
authorceriel <none@none>
Tue, 12 Apr 1988 19:34:38 +0000 (19:34 +0000)
committerceriel <none@none>
Tue, 12 Apr 1988 19:34:38 +0000 (19:34 +0000)
util/arch/archiver.c

index c8064b9..d2bf553 100644 (file)
@@ -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);