Skip to content

Constify to fix build with OpenSSL 4 - #590

Open
remicollet wants to merge 1 commit into
apache:trunkfrom
remicollet:issue-openssl4
Open

Constify to fix build with OpenSSL 4#590
remicollet wants to merge 1 commit into
apache:trunkfrom
remicollet:issue-openssl4

Conversation

@remicollet

Copy link
Copy Markdown
Contributor

Without this patch, with OpenSSL 4 (on Fedora 45)

tity::Result OpenSslVerifyIdentity::match_common_name_ipaddr(X509*, const datastax::String&)’:
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:285:44: error: invalid conversion from ‘const X509_NAME*’ {aka ‘const X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’} [-Werror=permissive]
  285 |     X509_NAME* name = X509_get_subject_name(cert);
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                                            |
      |                                            const X509_NAME* {aka const X509_name_st*}
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:292:56: error: invalid conversion from ‘const X509_NAME_ENTRY*’ {aka ‘const X509_name_entry_st*’} to ‘X509_NAME_ENTRY*’ {aka ‘X509_name_entry_st*’} [-Werror=permissive]
  292 |       X509_NAME_ENTRY* name_entry = X509_NAME_get_entry(name, i);
      |                                     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                        |
      |                                                        const X509_NAME_ENTRY* {aka const X509_name_entry_st*}
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:297:50: error: invalid conversion from ‘const ASN1_STRING*’ {aka ‘const asn1_string_st*’} to ‘ASN1_STRING*’ {aka ‘asn1_string_st*’} [-Werror=permissive]
  297 |       ASN1_STRING* str = X509_NAME_ENTRY_get_data(name_entry);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
      |                                                  |
      |                                                  const ASN1_STRING* {aka const asn1_string_st*}
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp: In static member function ‘static OpenSslVerifyIdentity::Result OpenSslVerifyIdentity::match_common_name_dns(X509*, const datastax::String&)’:
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:316:44: error: invalid conversion from ‘const X509_NAME*’ {aka ‘const X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’} [-Werror=permissive]
  316 |     X509_NAME* name = X509_get_subject_name(cert);
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                                            |
      |                                            const X509_NAME* {aka const X509_name_st*}
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:323:56: error: invalid conversion from ‘const X509_NAME_ENTRY*’ {aka ‘const X509_name_entry_st*’} to ‘X509_NAME_ENTRY*’ {aka ‘X509_name_entry_st*’} [-Werror=permissive]
  323 |       X509_NAME_ENTRY* name_entry = X509_NAME_get_entry(name, i);
      |                                     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~
      |                                                        |
      |                                                        const X509_NAME_ENTRY* {aka const X509_name_entry_st*}
/builddir/build/BUILD/cassandra-cpp-driver-2.17.1-build/cpp-driver-e05897d72fdac08a212ed3136b7790232670e329/src/ssl/ssl_openssl_impl.cpp:328:50: error: invalid conversion from ‘const ASN1_STRING*’ {aka ‘const asn1_string_st*’} to ‘ASN1_STRING*’ {aka ‘asn1_string_st*’} [-Werror=permissive]
  328 |       ASN1_STRING* str = X509_NAME_ENTRY_get_data(name_entry);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
      |                                                  |
      |                                                  const ASN1_STRING* {aka const asn1_string_st*}
cc1plus: all warnings being treated as errors

@absurdfarce

Copy link
Copy Markdown
Contributor

Seems legit to me. Triggered a Jenkins run just to confirm that there aren't any unintended consequences here (although I can't imagine what they'd be)... that run looked good.

Relevant change seems to be here.

@yifan-c Any objections?

@absurdfarce
absurdfarce requested a review from yifan-c September 3, 2026 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants