Don't leak memory from ERR_add_error_vdata()
Don't leak memory from ERR_add_error_vdata()

If the call the ERR_set_error_data() in ERR_add_error_vdata() fails then
a mem leak can occur. This commit checks that we successfully added the
error data, and if not frees the buffer.

Fixes #8085

Reviewed-by: Paul Yang <cad61ddf4788d12607a026a313663800394626e7@baishancloud.com>
(Merged from https://github.com/openssl/openssl/pull/8105)

openssl/openssl,openssl/openssl,openssl/openssl,openssl/openssl,openssl/openssl,openssl/openssl