Commit 7ef69a722c for openssl.org
commit 7ef69a722c129fe446d7a1fef52ff8f12ccb010b
Author: Neil Horman <nhorman@openssl.org>
Date: Tue Sep 15 09:25:11 2026 -0400
Increase BIO_dgram_pair ring buffer size on AIX for quic tests
AIX has a unique definition of struct sockaddr_un (AF_UNIX addresses).
Whereas most unixes define the structure to have a sun_path field of 108
bytes, AIX defines sun_path to be an array of 1023 bytes. Because
BIO_dgram_pairs use two BIO_ADDR's (which are a union containing
sockaddr_un) to define a pseudo UDP header, any dgram pair with a fixed
ring buffer size is likely to be unable to transmit a complete frame if
the ring buffer is sized with less than sizeof(BIO_ADDR)*2 + 1200 bytes
allocated on AIX.
Fix it by increasing the ring buffer size for such tests
Fixes #32506
Reviewed-by: Saša NedvÄ›dický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Andrew Dinh <andrewd@openssl.org>
Merge-date: Thu Oct 1 19:13:27 2026
Merged-from: https://github.com/openssl/openssl/pull/32838
diff --git a/test/helpers/quictestlib.c b/test/helpers/quictestlib.c
index 7c0fbca84d..ffc628f160 100644
--- a/test/helpers/quictestlib.c
+++ b/test/helpers/quictestlib.c
@@ -1445,6 +1445,7 @@ static int create_dgram_pair(BIO **c_bio_p, BIO **s_bio_p)
struct in_addr ina;
int bio_flags = 0;
int ok;
+ size_t ring_buf_size = 1500;
ina.s_addr = htonl(0x7f000001);
bio_flags |= BIO_DGRAM_CAP_HANDLES_DST_ADDR
@@ -1454,7 +1455,16 @@ static int create_dgram_pair(BIO **c_bio_p, BIO **s_bio_p)
c_bio = NULL;
s_bio = NULL;
- ok = BIO_new_bio_dgram_pair(&c_bio, 1500, &s_bio, 1500);
+#if defined(_AIX)
+ /*
+ * AIX has a struct sockaddr_un definition that greatly inflates the size of the
+ * BIO_ADDR structure, two of which are used to form a pseudo udp header in bio
+ * dgram pair BIO's. We need to increase the size of the pair ring buffers here
+ * to prevent test failures stemming from inability to transmit such large headers
+ */
+ ring_buf_size = 4096;
+#endif
+ ok = BIO_new_bio_dgram_pair(&c_bio, ring_buf_size, &s_bio, ring_buf_size);
if (ok == 0) {
TEST_info("%s BIO_new_bio_dgram_pair() error", OPENSSL_FUNC);
goto done;