openssl/crypto
Bernd Edlinger 82a13a1f50 Fix possible double-free in pkcs7 add_attribute function
The problem is the ownership of the input parameter value
is transfered to the X509_ATTRIBUTE object attr, as soon
as X509_ATTRIBUTE_create succeeds, but when an error happens
after that point there is no way to get the ownership back
to the caller, which is necessary to fullfill the API contract.

Fixed that by moving the call to X509_ATTRIBUTE_create to the
end of the function, and make sure that no errors are possible
after that point.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22721)
2024-07-08 12:25:45 +02:00
..
aes enable AES-XTS optimization for AIX 2024-05-30 18:46:43 +02:00
aria
asn1 ASN1_item_verify_ctx(): Return -1 on fatal errors 2024-06-21 10:03:42 +02:00
async posix_async: FreeBSD also defines {make|swap|get|set}context 2024-04-04 08:45:13 +02:00
bf
bio Unlock only when lock was successful 2024-07-03 15:03:00 -04:00
bn Allow group methods to customize initialization for speed 2024-06-05 11:11:52 +02:00
buffer
camellia Unable to run asm code on OpenBSD (amd64) 2024-04-17 09:38:06 +02:00
cast Copyright year updates 2023-09-07 09:59:15 +01:00
chacha chacha-riscv64-v-zbb.pl: better format 2024-05-08 11:10:45 +02:00
cmac Copyright year updates 2024-04-09 13:43:26 +02:00
cmp CMP: add support for requesting cert template using genm/genp 2024-06-20 13:38:13 +02:00
cms Fix error handling in CMS_EncryptedData_encrypt 2024-05-06 10:13:20 +02:00
comp Copyright year updates 2023-09-07 09:59:15 +01:00
conf Free appname if it was set after initializing crypto. 2024-06-27 19:49:52 +02:00
crmf CMP: add support for requesting cert template using genm/genp 2024-06-20 13:38:13 +02:00
ct
des Copyright year updates 2023-09-07 09:59:15 +01:00
dh Copyright year updates 2024-04-09 13:43:26 +02:00
dsa Check DSA parameters for excessive sizes before validating 2024-05-16 15:44:40 +02:00
dso Copyright year updates 2024-04-09 13:43:26 +02:00
ec Check EC_GROUP_get0_order result before dereference 2024-07-01 10:03:38 +02:00
encode_decode Copyright year updates 2024-04-09 13:43:26 +02:00
engine Unlock only when lock was successful 2024-07-03 15:03:00 -04:00
err Add Version Check for CSR Verification 2024-06-21 15:40:45 -04:00
ess ess_lib.c: Changed ERR_LIB_CMS to ERR_LIB_ESS 2024-04-30 09:21:30 +02:00
evp evp_pkey_ctx_setget_params_to_ctrl(): Always properly set ctx.action_type 2024-06-26 11:52:02 +02:00
ffc fips: zeroization of public security parameters (PSPs) 2024-05-13 11:14:11 +02:00
hashtable Convert hashtable to using ossl_rcu_deref on lookup 2024-07-03 09:07:21 +02:00
hmac
hpke Copyright year updates 2024-04-09 13:43:26 +02:00
http Copyright year updates 2024-04-09 13:43:26 +02:00
idea
kdf
lhash Copyright year updates 2024-04-09 13:43:26 +02:00
md2
md4
md5 md5: add assembly implementation for loongarch64 2023-12-27 10:15:29 +01:00
mdc2
modes Unable to run asm code on OpenBSD (amd64) 2024-04-17 09:38:06 +02:00
objects Typo fixes 2024-05-13 11:10:35 +02:00
ocsp Copyright year updates 2023-09-07 09:59:15 +01:00
pem Copyright year updates 2023-09-28 14:23:29 +01:00
perlasm MASM: Need to strip arguments after .pdata or .xdata 2024-06-26 12:03:45 +02:00
pkcs7 Fix possible double-free in pkcs7 add_attribute function 2024-07-08 12:25:45 +02:00
pkcs12 p12_npas.c: Remove call with unused return value 2024-06-28 09:12:03 +02:00
poly1305 poly1305.c: fix typo on POLY1305_BLOCK_SIZE 2024-04-17 09:41:14 +02:00
property Copyright year updates 2024-04-09 13:43:26 +02:00
rand internal/common.h: rename macro (un)likely to ossl_(un)likely 2023-11-03 21:08:22 +01:00
rc2 Copyright year updates 2023-09-07 09:59:15 +01:00
rc4 Copyright year updates 2023-09-07 09:59:15 +01:00
rc5 Copyright year updates 2023-09-07 09:59:15 +01:00
ripemd
rsa Removed hard coded value for cap in function ossl_rsa_multip_cap 2024-05-30 14:46:06 +02:00
seed
sha Intentionally break EVP_DigestFinal for SHAKE128 and SHAKE256 2024-05-15 12:10:32 +02:00
siphash
sm2 fix sm2 encryption implementation bug. 2024-05-15 11:17:14 +02:00
sm3 riscv: Support sm3 on platforms with vlen >= 128. 2023-10-26 15:55:50 +01:00
sm4 Copyright year updates 2024-04-09 13:43:26 +02:00
srp Copyright year updates 2023-09-28 14:23:29 +01:00
stack Copyright year updates 2024-04-09 13:43:26 +02:00
store Adding missing NULL pointer check 2024-04-15 10:29:14 +02:00
thread Copyright year updates 2023-09-07 09:59:15 +01:00
ts ts/ts_rsp_sign.c: Add the check for the EVP_MD_CTX_get_size() 2024-04-09 20:47:00 +02:00
txt_db Copyright year updates 2023-09-07 09:59:15 +01:00
ui Copyright year updates 2023-09-07 09:59:15 +01:00
whrlpool Unable to run asm code on OpenBSD (amd64) 2024-04-17 09:38:06 +02:00
x509 feat: support userNotice X.509v3 extension 2024-07-04 09:36:11 +02:00
alphacpuid.pl
arm64cpuid.pl
arm_arch.h Copyright year updates 2024-04-09 13:43:26 +02:00
armcap.c Copyright year updates 2024-04-09 13:43:26 +02:00
armv4cpuid.pl Copyright year updates 2023-09-07 09:59:15 +01:00
asn1_dsa.c
bsearch.c
build.info Move stack of compression methods from libssl to OSSL_LIB_CTX 2024-05-28 08:56:13 +02:00
c64xpluscpuid.pl
comp_methods.c Move stack of compression methods from libssl to OSSL_LIB_CTX 2024-05-28 08:56:13 +02:00
context.c docs: document that *_free(NULL) does nothing 2024-06-27 18:26:26 +02:00
core_algorithm.c
core_fetch.c
core_namemap.c Copyright year updates 2023-09-07 09:59:15 +01:00
cpt_err.c
cpuid.c Copyright year updates 2023-09-28 14:23:29 +01:00
cryptlib.c Copyright year updates 2023-09-07 09:59:15 +01:00
ctype.c Copyright year updates 2023-09-07 09:59:15 +01:00
cversion.c
der_writer.c
deterministic_nonce.c Correct top for EC/DSA nonces if BN_DEBUG is on 2024-05-02 09:21:30 +02:00
dllmain.c
ebcdic.c
ex_data.c Fix error handling in CRYPTO_get_ex_new_index 2023-09-21 14:43:08 +02:00
getenv.c
ia64cpuid.S
info.c rand: remove unimplemented librandom stub code 2024-05-24 12:03:21 +02:00
init.c Copyright year updates 2024-04-09 13:43:26 +02:00
initthread.c crypto/initthread.c: fix misspelled OSSL_provider_init() in comment 2023-10-26 15:45:41 +01:00
loongarch64cpuid.pl LoongArch64 assembly pack: Really implement OPENSSL_rdtsc 2023-12-19 18:34:34 +01:00
loongarch_arch.h Copyright year updates 2023-09-07 09:59:15 +01:00
loongarchcap.c Copyright year updates 2023-09-07 09:59:15 +01:00
LPdir_nyi.c
LPdir_unix.c Copyright year updates 2023-09-07 09:59:15 +01:00
LPdir_vms.c
LPdir_win32.c
LPdir_win.c
LPdir_wince.c
mem_clr.c
mem_sec.c Add locking to CRYPTO_secure_used 2023-12-01 09:03:04 -05:00
mem.c Introduce new internal hashtable implementation 2024-04-24 12:03:30 +10:00
mips_arch.h
o_dir.c
o_fopen.c
o_init.c
o_str.c OPENSSL_hexstr2buf_ex(): Handle zero-length input correctly 2024-07-02 20:13:56 +02:00
o_time.c
packet.c Copyright year updates 2023-09-07 09:59:15 +01:00
param_build_set.c ossl_param_build_set_multi_key_bn(): Do not set NULL BIGNUMs 2023-10-18 18:07:13 +02:00
param_build.c params: drop INT_MAX checks 2023-12-29 10:21:10 +01:00
params_dup.c
params_from_text.c Copyright year updates 2024-04-09 13:43:26 +02:00
params_idx.c.in
params.c uefi: move variables 2024-05-30 18:38:12 +02:00
pariscid.pl
passphrase.c
ppccap.c
ppccpuid.pl
provider_child.c Copyright year updates 2023-09-07 09:59:15 +01:00
provider_conf.c Fix remaining provider config settings to be decisive in value 2023-12-27 09:32:48 +01:00
provider_core.c Fix up path generation to use OPENSSL_MODULES 2024-04-18 18:38:56 +02:00
provider_local.h
provider_predefined.c
provider.c Copyright year updates 2023-09-07 09:59:15 +01:00
punycode.c Copyright year updates 2023-09-07 09:59:15 +01:00
quic_vlint.c
rcu_internal.h Copyright year updates 2024-04-09 13:43:26 +02:00
README-sparse_array.md
riscv32cpuid.pl Implement riscv_vlen_asm for riscv32 2024-05-10 17:02:49 +02:00
riscv64cpuid.pl riscv: Add basic vector extension support 2023-10-26 15:55:49 +01:00
riscvcap.c crypto/riscvcap: fix function declaration for hwprobe_to_cap 2024-05-14 15:24:26 +02:00
s390x_arch.h Copyright year updates 2023-09-07 09:59:15 +01:00
s390xcap.c Copyright year updates 2023-09-07 09:59:15 +01:00
s390xcpuid.pl
self_test_core.c
sleep.c For Unix, refactor OSSL_sleep() to use nanosleep() instead of usleep() 2024-05-22 09:59:32 +02:00
sparccpuid.S
sparcv9cap.c
sparse_array.c typo fix 2024-04-04 08:34:17 +02:00
threads_lib.c
threads_none.c threads_win: fix build error with VS2010 x86 2024-07-01 10:02:02 +02:00
threads_pthread.c threads_win: fix build error with VS2010 x86 2024-07-01 10:02:02 +02:00
threads_win.c threads_win: fix build error with VS2010 x86 2024-07-01 10:02:02 +02:00
time.c Copyright year updates 2023-09-07 09:59:15 +01:00
trace.c "foo * bar" should be "foo *bar" 2023-09-11 10:15:30 +02:00
uid.c Copyright year updates 2023-09-07 09:59:15 +01:00
vms_rms.h
x86_64cpuid.pl
x86cpuid.pl