1
0

0016-S2S-TLS-GnuTLS-Fix-handling-of-connections-without-p.patch 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. From 4c7c73c93825aa2e3550e675dffd9b921df9b634 Mon Sep 17 00:00:00 2001
  2. From: Alexander Barton <alex@barton.de>
  3. Date: Sat, 6 Jan 2024 19:57:50 +0100
  4. Subject: [PATCH 16/20] S2S-TLS/GnuTLS: Fix handling of connections without
  5. peer certificates
  6. (cherry picked from commit 8cef3ce42cd645a3ffb0e1eded52b8b77bb8caff)
  7. ---
  8. src/ngircd/conn-ssl.c | 9 ++++-----
  9. 1 file changed, 4 insertions(+), 5 deletions(-)
  10. --- a/src/ngircd/conn-ssl.c
  11. +++ b/src/ngircd/conn-ssl.c
  12. @@ -920,16 +920,15 @@
  13. gnutls_mac_get_name(gnutls_mac_get(sess)));
  14. cred = gnutls_auth_get_type(c->ssl_state.gnutls_session);
  15. if (cred == GNUTLS_CRD_CERTIFICATE) {
  16. - cert_seen = true;
  17. -
  18. gnutls_x509_crt_t cert;
  19. unsigned cert_list_size;
  20. const gnutls_datum_t *cert_list =
  21. gnutls_certificate_get_peers(sess, &cert_list_size);
  22. - if (!cert_list || cert_list_size == 0) {
  23. - Log(LOG_ERR, "No certificates found");
  24. +
  25. + if (!cert_list || cert_list_size == 0)
  26. goto done_cn_validation;
  27. - }
  28. +
  29. + cert_seen = true;
  30. int err = gnutls_x509_crt_init(&cert);
  31. if (err < 0) {
  32. Log(LOG_ERR,