]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
params: avoid using intmax_t since it's not well supported
authorPauli <pauli@openssl.org>
Fri, 18 Jun 2021 01:05:20 +0000 (11:05 +1000)
committerPauli <pauli@openssl.org>
Sat, 19 Jun 2021 05:45:25 +0000 (15:45 +1000)
Converting doubles to integers used to go via intmax_t which isn't properly
defined on some platforms.  The alternative is to go via int64_t.

Fixes #15815
Alternative to #15816

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15817)

crypto/params.c

index d9743633b07d5911dd42d6ab83e1e6e533463821..a1db5dba2681e1b4748452889787a1a15e6474d1 100644 (file)
@@ -1010,7 +1010,7 @@ int OSSL_PARAM_set_double(OSSL_PARAM *p, double val)
             return 1;
         }
     } else if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER
-               && val == (ossl_uintmax_t)val) {
+               && val == (uint64_t)val) {
         p->return_size = sizeof(double);
         if (p->data == NULL)
             return 1;
@@ -1035,7 +1035,7 @@ int OSSL_PARAM_set_double(OSSL_PARAM *p, double val)
                 return 1;
             }
             break;            }
-    } else if (p->data_type == OSSL_PARAM_INTEGER && val == (ossl_intmax_t)val) {
+    } else if (p->data_type == OSSL_PARAM_INTEGER && val == (int64_t)val) {
         p->return_size = sizeof(double);
         if (p->data == NULL)
             return 1;