UI: Check for NULL pointer after calling OPENSSL_memdup
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Tue, 25 Jan 2022 07:51:31 +0000 (15:51 +0800)
committerTomas Mraz <tomas@openssl.org>
Wed, 26 Jan 2022 16:32:40 +0000 (17:32 +0100)
commit3f6a12a07f52c55dc3f4b0def42680f589f89ed4
treed8c86da2205f048cb2adb546839c344b66318a14
parent1d28ada1c39997c10fe5392f4235bbd2bc44b40f
UI: Check for NULL pointer after calling OPENSSL_memdup

The OPENSSL_memdup() is not always success, as the potential failure of
the allocation.
Then the '*pptr'could be NULL pointer but the ui_dup_method_data() will
still return 1.
In CRYPTO_dup_ex_data(), the 'storage[i]->dup_func' will not fail and
'ptr' will be used in CRYPTO_set_ex_data().
Also, if '*pptr' is NULL, I think it should also return 0 to tell the
caller that the duplication fails in order to prevernt using the NULL
pointer.
Therefore, it should be better to add the check and return 1 only if the
duplication succeed.

Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17582)
crypto/ui/ui_util.c