Nothing with a real impact, just to silence sanitizers.

From OSS-Fuzz:

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
/src/libfuzzer/FuzzerSHA1.cpp:132:14 in
        sec-tabselect.c:58:24: runtime error: negation of 1 cannot be
represented in type 'mp_limb_t' (aka 'unsigned long')

Patch attached.


With Best Regards, Tim

From f258d9cf51bca9a0c00caa478193e9ee4f7ebc5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.rueh...@gmx.de>
Date: Fri, 3 Nov 2017 17:04:43 +0100
Subject: [PATCH] sec-tabselect: Fix undefined behavior
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This fixes a UBSAN warning (fuzzing GnuTLS on OSS-Fuzz):
negation of 1 cannot be represented in type 'mp_limb_t' (aka 'unsigned long')

Signed-off-by: Tim Rühsen <tim.rueh...@gmx.de>
---
 sec-tabselect.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sec-tabselect.c b/sec-tabselect.c
index e6bf2282..942c4247 100644
--- a/sec-tabselect.c
+++ b/sec-tabselect.c
@@ -55,7 +55,7 @@ sec_tabselect (mp_limb_t *rp, mp_size_t rn,
   mpn_zero (rp, rn);
   for (p = table; p < end; p += rn, k--)
     {
-      mp_limb_t mask = - (mp_limb_t) (k == 0);
+      mp_limb_t mask = (mp_limb_t) -(k == 0);
       for (i = 0; i < rn; i++)
 	rp[i] += mask & p[i];
     }
-- 
2.15.0.rc2

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
nettle-bugs mailing list
nettle-bugs@lists.lysator.liu.se
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to