Uploaded image for project: 'C Driver'
  1. C Driver
  2. CDRIVER-4590

Do not call ERR_load_BIO_strings when compiling with OpenSSL 3.0+

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Unknown Unknown
    • 1.24.0
    • Affects Version/s: None
    • Component/s: tls
    • None

      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)

            Assignee:
            jmikola@mongodb.com Jeremy Mikola
            Reporter:
            jmikola@mongodb.com Jeremy Mikola
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: