vnc: fix memory leak
If vnc's password is configured, it will leak memory which cipher variable pointed on every vnc connection. Cc: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Message-Id: <1437556133-11268-1-git-send-email-arei.gonglei@huawei.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
4bf1cb03fb
commit
60928458e5
5
ui/vnc.c
5
ui/vnc.c
@ -2520,7 +2520,7 @@ static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len)
|
|||||||
size_t i, pwlen;
|
size_t i, pwlen;
|
||||||
unsigned char key[8];
|
unsigned char key[8];
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
QCryptoCipher *cipher;
|
QCryptoCipher *cipher = NULL;
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
if (!vs->vd->password) {
|
if (!vs->vd->password) {
|
||||||
@ -2573,6 +2573,8 @@ static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len)
|
|||||||
|
|
||||||
start_client_init(vs);
|
start_client_init(vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qcrypto_cipher_free(cipher);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
reject:
|
reject:
|
||||||
@ -2584,6 +2586,7 @@ reject:
|
|||||||
}
|
}
|
||||||
vnc_flush(vs);
|
vnc_flush(vs);
|
||||||
vnc_client_error(vs);
|
vnc_client_error(vs);
|
||||||
|
qcrypto_cipher_free(cipher);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user