The branch OpenSSL_1_0_2-stable has been updated
       via  ea63fdda830b883314e163283e90db66ec3b7876 (commit)
      from  90670b54c493c04c830ac38e9cfd7acf8fac4012 (commit)


- Log -----------------------------------------------------------------
commit ea63fdda830b883314e163283e90db66ec3b7876
Author: Rich Salz <rs...@openssl.org>
Date:   Wed Feb 22 13:11:08 2017 -0500

    Iterate over EC_GROUP's poly array in a safe way
    
    Prevent that memory beyond the last element is accessed if every element
    of group->poly[] is non-zero
    
    Reviewed-by: Richard Levitte <levi...@openssl.org>
    Reviewed-by: Rich Salz <rs...@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/2689)
    
    (cherry picked from commit 57f48f939ed5d3119e3c691ea0a8a3ac2f4a1a9e)

-----------------------------------------------------------------------

Summary of changes:
 crypto/ec/ec_asn1.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c
index 33abf61..e3295c4 100644
--- a/crypto/ec/ec_asn1.c
+++ b/crypto/ec/ec_asn1.c
@@ -64,15 +64,18 @@
 
 int EC_GROUP_get_basis_type(const EC_GROUP *group)
 {
-    int i = 0;
+    int i;
 
     if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) !=
         NID_X9_62_characteristic_two_field)
         /* everything else is currently not supported */
         return 0;
 
-    while (group->poly[i] != 0)
-        i++;
+    /* Find the last non-zero element of group->poly[] */
+    for (i = 0;
+         i < (int)OSSL_NELEM(group->poly) & group->poly[i] != 0;
+         i++)
+        continue;
 
     if (i == 4)
         return NID_X9_62_ppBasis;
_____
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits

Reply via email to