]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
apps/enc.c: avoid signed integer overflow on bufsize assignment
authorEugene Syromiatnikov <esyr@openssl.org>
Mon, 1 Sep 2025 12:05:33 +0000 (14:05 +0200)
committerNeil Horman <nhorman@openssl.org>
Mon, 8 Sep 2025 20:56:58 +0000 (16:56 -0400)
The calculated option value, while being long-typed, is not checked
for fitting into int-sized bufsize.  Avoid overflow by throwing error
if it is bigger than INT_MAX and document that behaviour.

Fixes: 7e1b7485706c "Big apps cleanup (option-parsing, etc)"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665149
References: https://github.com/openssl/project/issues/1362
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28407)

apps/enc.c
doc/man1/openssl-enc.pod.in

index e7421ad896e3b92e37010bb07b722d8ccbe6d408..2b9985af0bdfc32181e56fff6814f2c734d82192 100644 (file)
@@ -252,6 +252,8 @@ int enc_main(int argc, char **argv)
                 goto opthelp;
             if (k)
                 n *= 1024;
+            if (n > INT_MAX)
+                goto opthelp;
             bsize = (int)n;
             break;
         case OPT_K:
index 33fe72d282a41399808a8db1a3084f7715aa7ecd..2e7c97a2ba45c8746f5d0f289fa43f26a05d957e 100644 (file)
@@ -194,6 +194,7 @@ or decryption.
 =item B<-bufsize> I<number>
 
 Set the buffer size for I/O.
+The maximum size that can be specified is B<2^31-1> (2147483647) bytes.
 
 =item B<-nopad>