Changeset 97372 in vbox for trunk/src/libs/openssl-3.0.7/ssl/t1_lib.c
- Timestamp:
- Nov 2, 2022 7:40:16 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 154372
- 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 15 15 /vendor/openssl/3.0.2:150728-150729 16 16 /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
-
- Property svn:mergeinfo
-
trunk/src/libs/openssl-3.0.7/ssl/t1_lib.c
r94404 r97372 345 345 */ 346 346 ret = 1; 347 ERR_set_mark(); 347 348 keymgmt = EVP_KEYMGMT_fetch(ctx->libctx, ginf->algorithm, ctx->propq); 348 349 if (keymgmt != NULL) { … … 366 367 EVP_KEYMGMT_free(keymgmt); 367 368 } 369 ERR_pop_to_mark(); 368 370 err: 369 371 if (ginf != NULL) { … … 371 373 OPENSSL_free(ginf->realname); 372 374 OPENSSL_free(ginf->algorithm); 373 ginf-> tlsname = ginf->realname = NULL;375 ginf->algorithm = ginf->tlsname = ginf->realname = NULL; 374 376 } 375 377 return ret; … … 725 727 726 728 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 } 729 734 for (i = 0; i < garg->gidcnt; i++) 730 735 if (garg->gid_arr[i] == gid) … … 1782 1787 unsigned char *sdec; 1783 1788 const unsigned char *p; 1784 int slen, renew_ticket = 0, declen;1789 int slen, ivlen, renew_ticket = 0, declen; 1785 1790 SSL_TICKET_STATUS ret = SSL_TICKET_FATAL_ERR_OTHER; 1786 1791 size_t mlen; … … 1895 1900 } 1896 1901 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 1897 1908 /* 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) { 1900 1910 ret = SSL_TICKET_NO_DECRYPT; 1901 1911 goto end; … … 1915 1925 /* Attempt to decrypt session data */ 1916 1926 /* 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; 1919 1929 sdec = OPENSSL_malloc(eticklen); 1920 1930 if (sdec == NULL || EVP_DecryptUpdate(ctx, sdec, &slen, p, … … 2817 2827 ca_dn = s->s3.tmp.peer_ca_names; 2818 2828 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)) 2820 2832 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 2827 2834 for (i = 0; i < sk_X509_num(chain); i++) { 2828 2835 X509 *xtmp = sk_X509_value(chain, i); 2836 2829 2837 if (ssl_check_ca_name(ca_dn, xtmp)) { 2830 2838 rv |= CERT_PKEY_ISSUER_NAME; … … 2832 2840 } 2833 2841 } 2834 } 2842 2835 2843 if (!check_flags && !(rv & CERT_PKEY_ISSUER_NAME)) 2836 2844 goto end; … … 3012 3020 if (x == NULL) { 3013 3021 x = sk_X509_value(sk, 0); 3022 if (x == NULL) 3023 return ERR_R_INTERNAL_ERROR; 3014 3024 start_idx = 1; 3015 3025 } else
Note:
See TracChangeset
for help on using the changeset viewer.