From: Matt Caswell Date: Thu, 26 Jan 2023 14:55:28 +0000 (+0000) Subject: Ensure calling BIO_recvmmsg() with a dgram pair reports errors X-Git-Tag: openssl-3.2.0-alpha1~1245 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=533390e46f8e2ea55d66d35fd54e724c2fb77571;p=thirdparty%2Fopenssl.git Ensure calling BIO_recvmmsg() with a dgram pair reports errors 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 Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/20030) --- diff --git a/crypto/bio/bss_dgram_pair.c b/crypto/bio/bss_dgram_pair.c index b80fa62e48a..3685d51f55d 100644 --- a/crypto/bio/bss_dgram_pair.c +++ b/crypto/bio/bss_dgram_pair.c @@ -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; }