Project

General

Profile

Actions

Bug #12182

closed

openssl: NPN may be disabled by OpenSSL configuration

Added by rhenium (Kazuki Yamaguchi) over 8 years ago. Updated about 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:74384]

Description

OpenSSL's NPN support can be disabled, and Ruby doesn't work well when it is disabled.

% make test-all TESTS="test/openssl"
...
# Running tests:

[274/358] OpenSSL::TestSSL#test_npn_advertised_protocol_too_long./test/runner.rb: OpenSSL::TestSSL#test_npn_advertised_protocol_too_long: symbol lookup error: /work/ruby-src/.ext/x86_64-linux/openssl.so: undefined symbol: SSL_CTX_set_next_proto_select_cb
uncommon.mk:607: recipe for target 'yes-test-all' failed
make: *** [yes-test-all] Error 127

We should detect that the OpenSSL has NPN support by checking existence of SSL_CTX_set_next_proto_select_cb, not of OPENSSL_NPN_NEGOTIATED.
This is because OPENSSL_NPN_NEGOTIATED macro always exists even if NPN is disabled.

I attached a patch which fixes this.


Files

Actions #1

Updated by nobu (Nobuyoshi Nakada) about 8 years ago

  • Status changed from Open to Closed

Applied in changeset r54258.


openssl: fix build when NPN is disabled by OpenSSL

  • ext/openssl/extconf.rb: check SSL_CTX_set_next_proto_select_cb
    function rather than OPENSSL_NPN_NEGOTIATED macro. it exists
    even if it is disabled by OpenSSL configuration.
    [ruby-core:74384] [Bug #12182]
  • ext/openssl/ossl_ssl.c: update #ifdef(s) as above.
  • test/openssl/test_ssl.rb: skip NPN tests if NPN is disabled.

Updated by usa (Usaku NAKAMURA) about 8 years ago

  • Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED

Updated by usa (Usaku NAKAMURA) about 8 years ago

  • Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: DONE, 2.2: REQUIRED, 2.3: REQUIRED

ruby_2_1 r54397 merged revision(s) 54258.

Updated by nagachika (Tomoyuki Chikanaga) about 8 years ago

  • Backport changed from 2.1: DONE, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: DONE, 2.2: DONE, 2.3: REQUIRED

Backported into ruby_2_2 branch at r54428.

Updated by naruse (Yui NARUSE) about 8 years ago

  • Backport changed from 2.1: DONE, 2.2: DONE, 2.3: REQUIRED to 2.1: DONE, 2.2: DONE, 2.3: DONE

ruby_2_3 r54551 merged revision(s) 54258.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0