From 27339340e7bb91501e7ce1daf69114c5f1be7146 Mon Sep 17 00:00:00 2001
From: bcook <>
Date: Sat, 3 Sep 2016 14:37:00 +0000
Subject: Avoid undefined-behavior right-shifting by a word-size # of bits.

Found with STACK, originally from OpenSSL, ok @beck
---
 src/lib/libcrypto/bn/bn_gf2m.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

(limited to 'src/lib')

diff --git a/src/lib/libcrypto/bn/bn_gf2m.c b/src/lib/libcrypto/bn/bn_gf2m.c
index d83ae291ec..62395f60eb 100644
--- a/src/lib/libcrypto/bn/bn_gf2m.c
+++ b/src/lib/libcrypto/bn/bn_gf2m.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_gf2m.c,v 1.21 2016/03/12 21:44:11 bcook Exp $ */
+/* $OpenBSD: bn_gf2m.c,v 1.22 2016/09/03 14:37:00 bcook Exp $ */
 /* ====================================================================
  * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
  *
@@ -443,8 +443,7 @@ BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[])
 			d0 = p[k] % BN_BITS2;
 			d1 = BN_BITS2 - d0;
 			z[n] ^= (zz << d0);
-			tmp_ulong = zz >> d1;
-			if (d0 && tmp_ulong)
+			if (d0 && (tmp_ulong = zz >> d1))
 				z[n + 1] ^= tmp_ulong;
 		}
 
-- 
cgit v1.2.3-55-g6feb