]> 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:50:36 +0000 (09:50 +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)

apps/lib/opt.c

index 0490c39c251669e20a978d6cfad4e8eaa2d581c5..d72b624a9e59a0a476daa5a2986a47e184223194 100644 (file)
@@ -646,7 +646,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;
 }