ssl/statem/statem_srvr.c:1612: error: UNINITIALIZED_VALUE
  The value read from al was never initialized.
Showing all 1 steps of the trace


ssl/statem/statem_srvr.c:1612:5: 
1610.       return WORK_FINISHED_STOP;
1611.    f_err:
1612. >     ssl3_send_alert(s, SSL3_AL_FATAL, al);
1613.       ossl_statem_set_error(s);
1614.       return WORK_ERROR;

enum WORK_STATE tls_post_process_client_hello(SSL *s, enum WORK_STATE wst)
{
    int al;
    SSL_CIPHER *cipher;
    if (wst == WORK_MORE_A) {
        if (!s->hit) {
            if (s->cert->cert_cb) {
                int rv = s->cert->cert_cb(s, s->cert->cert_cb_arg);
                if (rv == 0) {
                    al = SSL_AD_INTERNAL_ERROR;
                    SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_CERT_CB_ERROR);
                    goto f_err;
                }
                if (rv < 0) {
                    s->rwstate = SSL_X509_LOOKUP;
                    return WORK_MORE_A;
                }
                s->rwstate = SSL_NOTHING;
            }
            cipher = ssl3_choose_cipher(s, s->session->ciphers, SSL_get_ciphers(s));
            if (cipher == NULL) {
                al = SSL_AD_HANDSHAKE_FAILURE;
                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_NO_SHARED_CIPHER);
                goto f_err;
            }
            s->s3->tmp.new_cipher = cipher;
            if (s->not_resumable_session_cb != NULL)
                s->session->not_resumable = s->not_resumable_session_cb(s,
                    ((cipher->algorithm_mkey & (SSL_kDHE | SSL_kECDHE)) != 0));
            if (s->session->not_resumable)
                s->tlsext_ticket_expected = 0;
        } else {
            s->s3->tmp.new_cipher = s->session->cipher;
        }
        if (!SSL_USE_SIGALGS(s) || !(s->verify_mode & SSL_VERIFY_PEER)) {
            if (!ssl3_digest_cached_records(s, 0))
                goto f_err;
        }
        if (s->version >= SSL3_VERSION) {
            if (ssl_check_clienthello_tlsext_late(s) <= 0) {
                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT);
                goto f_err;
            }
        }
        wst = WORK_MORE_B;
    }
#ifndef OPENSSL_NO_SRP
    if (wst == WORK_MORE_B) {
        int ret;
        if ((ret = ssl_check_srp_ext_ClientHello(s, &al)) < 0) {
            s->rwstate = SSL_X509_LOOKUP;
            return WORK_MORE_B;
        }
        if (ret != SSL_ERROR_NONE) {
            if (al != TLS1_AD_UNKNOWN_PSK_IDENTITY)
                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO,
                           SSL_R_CLIENTHELLO_TLSEXT);
            goto f_err;
        }
    }
#endif
    s->renegotiate = 2;
    return WORK_FINISHED_STOP;
 f_err:
    ssl3_send_alert(s, SSL3_AL_FATAL, al);
    ossl_statem_set_error(s);
    return WORK_ERROR;
}
['enum WORK_STATE tls_post_process_client_hello(SSL *s, enum WORK_STATE wst)\n{\n    int al;\n    SSL_CIPHER *cipher;\n    if (wst == WORK_MORE_A) {\n        if (!s->hit) {\n            if (s->cert->cert_cb) {\n                int rv = s->cert->cert_cb(s, s->cert->cert_cb_arg);\n                if (rv == 0) {\n                    al = SSL_AD_INTERNAL_ERROR;\n                    SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_CERT_CB_ERROR);\n                    goto f_err;\n                }\n                if (rv < 0) {\n                    s->rwstate = SSL_X509_LOOKUP;\n                    return WORK_MORE_A;\n                }\n                s->rwstate = SSL_NOTHING;\n            }\n            cipher = ssl3_choose_cipher(s, s->session->ciphers, SSL_get_ciphers(s));\n            if (cipher == NULL) {\n                al = SSL_AD_HANDSHAKE_FAILURE;\n                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_NO_SHARED_CIPHER);\n                goto f_err;\n            }\n            s->s3->tmp.new_cipher = cipher;\n            if (s->not_resumable_session_cb != NULL)\n                s->session->not_resumable = s->not_resumable_session_cb(s,\n                    ((cipher->algorithm_mkey & (SSL_kDHE | SSL_kECDHE)) != 0));\n            if (s->session->not_resumable)\n                s->tlsext_ticket_expected = 0;\n        } else {\n            s->s3->tmp.new_cipher = s->session->cipher;\n        }\n        if (!SSL_USE_SIGALGS(s) || !(s->verify_mode & SSL_VERIFY_PEER)) {\n            if (!ssl3_digest_cached_records(s, 0))\n                goto f_err;\n        }\n        if (s->version >= SSL3_VERSION) {\n            if (ssl_check_clienthello_tlsext_late(s) <= 0) {\n                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT);\n                goto f_err;\n            }\n        }\n        wst = WORK_MORE_B;\n    }\n#ifndef OPENSSL_NO_SRP\n    if (wst == WORK_MORE_B) {\n        int ret;\n        if ((ret = ssl_check_srp_ext_ClientHello(s, &al)) < 0) {\n            s->rwstate = SSL_X509_LOOKUP;\n            return WORK_MORE_B;\n        }\n        if (ret != SSL_ERROR_NONE) {\n            if (al != TLS1_AD_UNKNOWN_PSK_IDENTITY)\n                SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO,\n                           SSL_R_CLIENTHELLO_TLSEXT);\n            goto f_err;\n        }\n    }\n#endif\n    s->renegotiate = 2;\n    return WORK_FINISHED_STOP;\n f_err:\n    ssl3_send_alert(s, SSL3_AL_FATAL, al);\n    ossl_statem_set_error(s);\n    return WORK_ERROR;\n}']