VirtualBox

Ignore:
Timestamp:
Nov 2, 2022 7:40:16 AM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
154372
Message:

libs: Switch to openssl-3.0.7, bugref:10317

Location:
trunk/src/libs/openssl-3.0.7
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/openssl-3.0.7

    • Property svn:mergeinfo
      •  

        old new  
        1515/vendor/openssl/3.0.2:150728-150729
        1616/vendor/openssl/3.0.3:151497-151729
        17 /vendor/openssl/current:147554-151496
         17/vendor/openssl/3.0.7:154371
         18/vendor/openssl/current:147554-154370
  • trunk/src/libs/openssl-3.0.7/ssl/t1_lib.c

    r94404 r97372  
    345345     */
    346346    ret = 1;
     347    ERR_set_mark();
    347348    keymgmt = EVP_KEYMGMT_fetch(ctx->libctx, ginf->algorithm, ctx->propq);
    348349    if (keymgmt != NULL) {
     
    366367        EVP_KEYMGMT_free(keymgmt);
    367368    }
     369    ERR_pop_to_mark();
    368370 err:
    369371    if (ginf != NULL) {
     
    371373        OPENSSL_free(ginf->realname);
    372374        OPENSSL_free(ginf->algorithm);
    373         ginf->tlsname = ginf->realname = NULL;
     375        ginf->algorithm = ginf->tlsname = ginf->realname = NULL;
    374376    }
    375377    return ret;
     
    725727
    726728    gid = tls1_group_name2id(garg->ctx, etmp);
    727     if (gid == 0)
    728         return 0;
     729    if (gid == 0) {
     730        ERR_raise_data(ERR_LIB_SSL, ERR_R_PASSED_INVALID_ARGUMENT,
     731                       "group '%s' cannot be set", etmp);
     732        return 0;
     733    }
    729734    for (i = 0; i < garg->gidcnt; i++)
    730735        if (garg->gid_arr[i] == gid)
     
    17821787    unsigned char *sdec;
    17831788    const unsigned char *p;
    1784     int slen, renew_ticket = 0, declen;
     1789    int slen, ivlen, renew_ticket = 0, declen;
    17851790    SSL_TICKET_STATUS ret = SSL_TICKET_FATAL_ERR_OTHER;
    17861791    size_t mlen;
     
    18951900    }
    18961901
     1902    ivlen = EVP_CIPHER_CTX_get_iv_length(ctx);
     1903    if (ivlen < 0) {
     1904        ret = SSL_TICKET_FATAL_ERR_OTHER;
     1905        goto end;
     1906    }
     1907
    18971908    /* Sanity check ticket length: must exceed keyname + IV + HMAC */
    1898     if (eticklen <=
    1899         TLSEXT_KEYNAME_LENGTH + EVP_CIPHER_CTX_get_iv_length(ctx) + mlen) {
     1909    if (eticklen <= TLSEXT_KEYNAME_LENGTH + ivlen + mlen) {
    19001910        ret = SSL_TICKET_NO_DECRYPT;
    19011911        goto end;
     
    19151925    /* Attempt to decrypt session data */
    19161926    /* Move p after IV to start of encrypted ticket, update length */
    1917     p = etick + TLSEXT_KEYNAME_LENGTH + EVP_CIPHER_CTX_get_iv_length(ctx);
    1918     eticklen -= TLSEXT_KEYNAME_LENGTH + EVP_CIPHER_CTX_get_iv_length(ctx);
     1927    p = etick + TLSEXT_KEYNAME_LENGTH + ivlen;
     1928    eticklen -= TLSEXT_KEYNAME_LENGTH + ivlen;
    19191929    sdec = OPENSSL_malloc(eticklen);
    19201930    if (sdec == NULL || EVP_DecryptUpdate(ctx, sdec, &slen, p,
     
    28172827        ca_dn = s->s3.tmp.peer_ca_names;
    28182828
    2819         if (!sk_X509_NAME_num(ca_dn))
     2829        if (ca_dn == NULL
     2830            || sk_X509_NAME_num(ca_dn) == 0
     2831            || ssl_check_ca_name(ca_dn, x))
    28202832            rv |= CERT_PKEY_ISSUER_NAME;
    2821 
    2822         if (!(rv & CERT_PKEY_ISSUER_NAME)) {
    2823             if (ssl_check_ca_name(ca_dn, x))
    2824                 rv |= CERT_PKEY_ISSUER_NAME;
    2825         }
    2826         if (!(rv & CERT_PKEY_ISSUER_NAME)) {
     2833        else
    28272834            for (i = 0; i < sk_X509_num(chain); i++) {
    28282835                X509 *xtmp = sk_X509_value(chain, i);
     2836
    28292837                if (ssl_check_ca_name(ca_dn, xtmp)) {
    28302838                    rv |= CERT_PKEY_ISSUER_NAME;
     
    28322840                }
    28332841            }
    2834         }
     2842
    28352843        if (!check_flags && !(rv & CERT_PKEY_ISSUER_NAME))
    28362844            goto end;
     
    30123020    if (x == NULL) {
    30133021        x = sk_X509_value(sk, 0);
     3022        if (x == NULL)
     3023            return ERR_R_INTERNAL_ERROR;
    30143024        start_idx = 1;
    30153025    } else
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette