• M
    Copy custom extension flags in a call to SSL_set_SSL_CTX() · 21181889
    Matt Caswell 提交于
    The function SSL_set_SSL_CTX() can be used to swap the SSL_CTX used for
    a connection as part of an SNI callback. One result of this is that the
    s->cert structure is replaced. However this structure contains information
    about any custom extensions that have been loaded. In particular flags are
    set indicating whether a particular extension has been received in the
    ClientHello. By replacing the s->cert structure we lose the custom
    extension flag values, and it appears as if a client has not sent those
    extensions.
    
    SSL_set_SSL_CTX() should copy any flags for custom extensions that appear
    in both the old and the new cert structure.
    
    Fixes #2180
    Reviewed-by: NRich Salz <rsalz@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/3425)
    21181889
ssl_lib.c 132.9 KB