Buffer Overflow in bigint_add

From: Jens Rohler <jkcr@rohler.de>
Date: Mon Aug 15 2005 - 18:19:40 CEST

Durch eine fehlerhafte Abfrage in bigint_add kann ein Overflow bei der
Addition zweier bigint-Zahlen nicht abgefangen werden und es entsteht ein
Buffer Overflow.
Nachfolgender Patch korrigiert diesen Bug.

--- ../dtaus-0.7/bigint.c 2001-11-18 00:12:42.000000000 +0100
+++ ./bigint.c 2005-08-14 01:36:13.000000000 +0200
@@ -34,7 +34,7 @@
     tmp = a.val[i] + b.val[i];
     if (tmp >= BIGINT_MAX) {
       c.val[i] = tmp - BIGINT_MAX;
- if (i<BIGINT_LEN)
+ if (i<BIGINT_LEN-1)
        a.val[i+1]++;
       else
        fprintf(stderr, "Overflow in bigint addition.");
Received on Mon, 15 Aug 2005 18:19:40 +0200

This archive was generated by hypermail 2.1.8 : Mon Aug 15 2005 - 18:20:19 CEST