[CDRIVER-4590] Do not call ERR_load_BIO_strings when compiling with OpenSSL 3.0+ Created: 13/Mar/23  Updated: 28/Oct/23  Resolved: 16/Mar/23

Status: Closed
Project: C Driver
Component/s: tls
Affects Version/s: None
Fix Version/s: 1.24.0

Type: Improvement Priority: Unknown
Reporter: Jeremy Mikola Assignee: Jeremy Mikola
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Summary

I observed the following build warning compiling PHPC after upgrading to Ubuntu 22.04:

/phpc/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c: In function ‘_mongoc_openssl_init’:
/phpc/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c:79:4: warning: ‘ERR_load_BIO_strings’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
   79 |    ERR_load_BIO_strings ();
      |    ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/cryptoerr.h:17,
                 from /usr/include/openssl/crypto.h:38,
                 from /usr/include/openssl/bio.h:30,
                 from /phpc/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c:23:
/usr/include/openssl/cryptoerr_legacy.h:31:27: note: declared here
   31 | OSSL_DEPRECATEDIN_3_0 int ERR_load_BIO_strings(void);
      |

Quoting OPENSSL 3.0: Main Changes from OpenSSL 1.1.1:

ERR_load_*(), ERR_func_error_string(), ERR_get_error_line(), ERR_get_error_line_data(), ERR_get_state()

OpenSSL now loads error strings automatically so these functions are not needed.

See rsyslog/rsyslog@e5b6d36 for a related fix.

Environment

  • Ubuntu 22.04.02 LTS
  • gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
  • OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)


 Comments   
Comment by Githook User [ 16/Mar/23 ]

Author:

{'name': 'Jeremy Mikola', 'email': 'jmikola@gmail.com', 'username': 'jmikola'}

Message: CDRIVER-4590 don't call ERR_load_BIO_strings for OpenSSL 3.0+ (#1216)

OpenSSL 3.0 loads error strings automatically and deprecated this function. See: https://www.openssl.org/docs/man3.0/man7/migration_guide.html#Deprecated-function-mappings
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/72cba009ec70fd734dc76426c5385487a1c6930d

Comment by Jeremy Mikola [ 13/Mar/23 ]

https://github.com/mongodb/mongo-c-driver/pull/1216

Generated at Wed Feb 07 21:21:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.