Test-crypto-hash calls qcrypto_hash_bytesv/digest/base64 with
errp=NULL, this will cause a NULL pointer dereference if afalg_driver
doesn't support requested algos:
ret = qcrypto_hash_afalg_driver.hash_bytesv(alg, iov, niov,
result, resultlen,
errp);
if (ret == 0) {
return ret;
}
error_free(*errp); // <--- here
Because the error message is thrown away immediately, we should
just pass NULL to hash_bytesv(). There is also the same problem in
afalg-backend cipher & hmac, let's fix them together.
Reviewed-by: Eric Blake <eblake@redhat.com>
Reported-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Longpeng <longpeng2@huawei.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||
|---|---|---|
| .. | ||
| Makefile.objs | ||
| aes.c | ||
| afalg.c | ||
| afalgpriv.h | ||
| afsplit.c | ||
| block-luks.c | ||
| block-luks.h | ||
| block-qcow.c | ||
| block-qcow.h | ||
| block.c | ||
| blockpriv.h | ||
| cipher-afalg.c | ||
| cipher-builtin.c | ||
| cipher-gcrypt.c | ||
| cipher-nettle.c | ||
| cipher.c | ||
| cipherpriv.h | ||
| desrfb.c | ||
| hash-afalg.c | ||
| hash-gcrypt.c | ||
| hash-glib.c | ||
| hash-nettle.c | ||
| hash.c | ||
| hashpriv.h | ||
| hmac-gcrypt.c | ||
| hmac-glib.c | ||
| hmac-nettle.c | ||
| hmac.c | ||
| hmacpriv.h | ||
| init.c | ||
| ivgen-essiv.c | ||
| ivgen-essiv.h | ||
| ivgen-plain.c | ||
| ivgen-plain.h | ||
| ivgen-plain64.c | ||
| ivgen-plain64.h | ||
| ivgen.c | ||
| ivgenpriv.h | ||
| pbkdf-gcrypt.c | ||
| pbkdf-nettle.c | ||
| pbkdf-stub.c | ||
| pbkdf.c | ||
| random-gcrypt.c | ||
| random-gnutls.c | ||
| random-platform.c | ||
| secret.c | ||
| tlscreds.c | ||
| tlscredsanon.c | ||
| tlscredspriv.h | ||
| tlscredsx509.c | ||
| tlssession.c | ||
| trace-events | ||
| xts.c | ||