From 093e19c07e1812f8dcd52eb4b18f48ab85778a69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Sat, 16 Nov 2002 00:23:04 +0100
Subject: [PATCH] (nettle_mpz_set_sexp): In the first check against limit,
 added some margin to allow for sign octets.

Rev: src/nettle/sexp2bignum.c:1.3
---
 sexp2bignum.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sexp2bignum.c b/sexp2bignum.c
index 69757cee..f7ef6884 100644
--- a/sexp2bignum.c
+++ b/sexp2bignum.c
@@ -38,10 +38,12 @@ nettle_mpz_set_sexp(mpz_t x, unsigned limit, const struct sexp_iterator *i)
       && i->atom_length
       && !i->display)
     {
-      if (limit && (8 * i->atom_length > limit))
+      /* Allow some extra here, for leading sign octets. */
+      if (limit && (8 * i->atom_length > (16 + limit)))
 	return 0;
       
       nettle_mpz_set_str_256_s(x, i->atom_length, i->atom);
+      /* FIXME: How to interpret a limit for negative numbers? */
       return !limit || mpz_sizeinbase(x, 2) <= limit;
     }
   else
-- 
GitLab