]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix coverity-1604665
authorNeil Horman <nhorman@openssl.org>
Mon, 15 Jul 2024 19:59:14 +0000 (15:59 -0400)
committerTomas Mraz <tomas@openssl.org>
Wed, 17 Jul 2024 07:51:09 +0000 (09:51 +0200)
Coverity issued an error in the opt_uintmax code, detecting a potential
overflow on a cast to ossl_intmax_t

Looks like it was just a typo, casting m from uintmax_t to ossl_intmax_t

Fix it by correcting the cast to be ossl_uintmax_t, as would be expected

Theres also some conditionals that seem like they should be removed, but
I'll save that for later, as there may be some corner cases in which
ossl_uintmax_t isn't equal in size to uintmax_t..maybe.

Fixes openssl/private#567

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24897)

(cherry picked from commit a753547eefc9739f341824a0cb0642afe7a06fcc)

apps/lib/opt.c

index d56964dbe7ba9a391e4ea9516418eefef5116522..224d2157c6ec84299442e77a22045f5c31d58e70 100644 (file)
@@ -616,7 +616,7 @@ int opt_uintmax(const char *value, ossl_uintmax_t *result)
         opt_number_error(value);
         return 0;
     }
-    *result = (ossl_intmax_t)m;
+    *result = (ossl_uintmax_t)m;
     errno = oerrno;
     return 1;
 }