From 533390e46f8e2ea55d66d35fd54e724c2fb77571 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Thu, 26 Jan 2023 14:55:28 +0000 Subject: 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) --- crypto/bio/bss_dgram_pair.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'crypto') diff --git a/crypto/bio/bss_dgram_pair.c b/crypto/bio/bss_dgram_pair.c index b80fa62e48..3685d51f55 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; } -- cgit v1.2.3