]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Ensure calling BIO_recvmmsg() with a dgram pair reports errors
authorMatt Caswell <matt@openssl.org>
Thu, 26 Jan 2023 14:55:28 +0000 (14:55 +0000)
committerHugo Landau <hlandau@openssl.org>
Wed, 22 Feb 2023 05:34:05 +0000 (05:34 +0000)
When calling BIO-recvmmsg() and using a dgram pair we were failing to
raise an error in the case that a problem occurs. This means that the
reason behind a failure cannot be detected and all problems are treated
as fatal even if they may not be.

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20030)

crypto/bio/bss_dgram_pair.c

index b80fa62e48a7d03e95ba4ff5f767b27646729b57..3685d51f55d9947d8e1a900a7210fa902bfca229 100644 (file)
@@ -1066,10 +1066,12 @@ static int dgram_pair_recvmmsg(BIO *bio, BIO_MSG *msg,
                                    m->local, m->peer, 1);
         if (l < 0) {
             *num_processed = i;
-            if (i > 0)
+            if (i > 0) {
                 ret = 1;
-            else
+            } else {
+                ERR_raise(ERR_LIB_BIO, -l);
                 ret = 0;
+            }
             goto out;
         }