aboutsummaryrefslogtreecommitdiff
path: root/crypto/openssl/ssl/ssl_lib.c
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2026-04-09 01:44:24 +0000
committerEnji Cooper <ngie@FreeBSD.org>2026-04-12 02:14:40 +0000
commite2fcde7333a515907316cf1a4ee4858edc90419d (patch)
tree25413360bfddba499d8c3d965cfe532272ad4975 /crypto/openssl/ssl/ssl_lib.c
parent2a97b49bc47228618242843d0d84f51ec67f3f36 (diff)
MFV: crypto/openssl: update to 3.5.6
This change brings in version 3.5.6 of OpenSSL, which features several security fixes (the highest of which is a MEDIUM severity issue), as well as some miscellaneous feature updates. Please see the release notes [1] for more details. PS Apologies for the confusing merge commits -- I was testing out a new automated update process and failed to catch the commit message issues until after I pushed the change. 1. https://github.com/openssl/openssl/blob/openssl-3.5.6/NEWS.md MFC after: 1 day (the security issues warrant a quick backport). Merge commit 'ab5fc4ac933ff67bc800e774dffce15e2a541e90' (cherry picked from commit 10a428653ee7216475f1ddce3fb4cbf1200319f8)
Diffstat (limited to 'crypto/openssl/ssl/ssl_lib.c')
-rw-r--r--crypto/openssl/ssl/ssl_lib.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/crypto/openssl/ssl/ssl_lib.c b/crypto/openssl/ssl/ssl_lib.c
index ac77faa677ce..05b0209a76b3 100644
--- a/crypto/openssl/ssl/ssl_lib.c
+++ b/crypto/openssl/ssl/ssl_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
* Copyright 2005 Nokia. All rights reserved.
*
@@ -3412,22 +3412,21 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size)
int i;
const SSL_CONNECTION *sc = SSL_CONNECTION_FROM_CONST_SSL(s);
- if (sc == NULL)
+ if (size < 2 || buf == NULL)
return NULL;
- if (!sc->server
- || sc->peer_ciphers == NULL
- || size < 2)
+ buf[0] = '\0';
+
+ if (sc == NULL || !sc->server)
return NULL;
p = buf;
clntsk = sc->peer_ciphers;
srvrsk = SSL_get_ciphers(s);
- if (clntsk == NULL || srvrsk == NULL)
- return NULL;
- if (sk_SSL_CIPHER_num(clntsk) == 0 || sk_SSL_CIPHER_num(srvrsk) == 0)
- return NULL;
+ if (clntsk == NULL || sk_SSL_CIPHER_num(clntsk) == 0
+ || srvrsk == NULL || sk_SSL_CIPHER_num(srvrsk) == 0)
+ return buf;
for (i = 0; i < sk_SSL_CIPHER_num(clntsk); i++) {
int n;
@@ -3447,10 +3446,9 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size)
}
/* No overlap */
- if (p == buf)
- return NULL;
+ if (p != buf)
+ p[-1] = '\0';
- p[-1] = '\0';
return buf;
}