|
@@ -191,6 +191,11 @@ static int cryptodev_backend_account(CryptoDevBackend *backend,
|
|
|
if (algtype == QCRYPTODEV_BACKEND_ALG_ASYM) {
|
|
|
CryptoDevBackendAsymOpInfo *asym_op_info = op_info->u.asym_op_info;
|
|
|
len = asym_op_info->src_len;
|
|
|
+
|
|
|
+ if (unlikely(!backend->asym_stat)) {
|
|
|
+ error_report("cryptodev: Unexpected asym operation");
|
|
|
+ return -VIRTIO_CRYPTO_NOTSUPP;
|
|
|
+ }
|
|
|
switch (op_info->op_code) {
|
|
|
case VIRTIO_CRYPTO_AKCIPHER_ENCRYPT:
|
|
|
CryptodevAsymStatIncEncrypt(backend, len);
|
|
@@ -210,6 +215,11 @@ static int cryptodev_backend_account(CryptoDevBackend *backend,
|
|
|
} else if (algtype == QCRYPTODEV_BACKEND_ALG_SYM) {
|
|
|
CryptoDevBackendSymOpInfo *sym_op_info = op_info->u.sym_op_info;
|
|
|
len = sym_op_info->src_len;
|
|
|
+
|
|
|
+ if (unlikely(!backend->sym_stat)) {
|
|
|
+ error_report("cryptodev: Unexpected sym operation");
|
|
|
+ return -VIRTIO_CRYPTO_NOTSUPP;
|
|
|
+ }
|
|
|
switch (op_info->op_code) {
|
|
|
case VIRTIO_CRYPTO_CIPHER_ENCRYPT:
|
|
|
CryptodevSymStatIncEncrypt(backend, len);
|