crypto: Fix memory leaks in set_loaded for tls-*
If you set the loaded property to true when it was already true, the state is overwritten without freeing the old state first. Change the set_loaded callback so that it always frees the old state (which is a no-op if nothing was loaded) and only then load if requestsd. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
668cb74b2a
commit
ab366aae78
@ -123,10 +123,9 @@ qcrypto_tls_creds_anon_prop_set_loaded(Object *obj,
|
|||||||
{
|
{
|
||||||
QCryptoTLSCredsAnon *creds = QCRYPTO_TLS_CREDS_ANON(obj);
|
QCryptoTLSCredsAnon *creds = QCRYPTO_TLS_CREDS_ANON(obj);
|
||||||
|
|
||||||
|
qcrypto_tls_creds_anon_unload(creds);
|
||||||
if (value) {
|
if (value) {
|
||||||
qcrypto_tls_creds_anon_load(creds, errp);
|
qcrypto_tls_creds_anon_load(creds, errp);
|
||||||
} else {
|
|
||||||
qcrypto_tls_creds_anon_unload(creds);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,10 +192,9 @@ qcrypto_tls_creds_psk_prop_set_loaded(Object *obj,
|
|||||||
{
|
{
|
||||||
QCryptoTLSCredsPSK *creds = QCRYPTO_TLS_CREDS_PSK(obj);
|
QCryptoTLSCredsPSK *creds = QCRYPTO_TLS_CREDS_PSK(obj);
|
||||||
|
|
||||||
|
qcrypto_tls_creds_psk_unload(creds);
|
||||||
if (value) {
|
if (value) {
|
||||||
qcrypto_tls_creds_psk_load(creds, errp);
|
qcrypto_tls_creds_psk_load(creds, errp);
|
||||||
} else {
|
|
||||||
qcrypto_tls_creds_psk_unload(creds);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -694,10 +694,9 @@ qcrypto_tls_creds_x509_prop_set_loaded(Object *obj,
|
|||||||
{
|
{
|
||||||
QCryptoTLSCredsX509 *creds = QCRYPTO_TLS_CREDS_X509(obj);
|
QCryptoTLSCredsX509 *creds = QCRYPTO_TLS_CREDS_X509(obj);
|
||||||
|
|
||||||
|
qcrypto_tls_creds_x509_unload(creds);
|
||||||
if (value) {
|
if (value) {
|
||||||
qcrypto_tls_creds_x509_load(creds, errp);
|
qcrypto_tls_creds_x509_load(creds, errp);
|
||||||
} else {
|
|
||||||
qcrypto_tls_creds_x509_unload(creds);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user