diff --git a/crypto/cipher-builtin.c b/crypto/cipher-builtin.c index c625cb40f7..912c1b947d 100644 --- a/crypto/cipher-builtin.c +++ b/crypto/cipher-builtin.c @@ -354,11 +354,13 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg, void qcrypto_cipher_free(QCryptoCipher *cipher) { - QCryptoCipherBuiltin *ctxt = cipher->opaque; + QCryptoCipherBuiltin *ctxt; + if (!cipher) { return; } + ctxt = cipher->opaque; ctxt->free(cipher); g_free(cipher); } diff --git a/migration/ram.c b/migration/ram.c index c696814196..1e58cd3924 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1266,9 +1266,10 @@ static int ram_save_complete(QEMUFile *f, void *opaque) flush_compressed_data(f); ram_control_after_iterate(f, RAM_CONTROL_FINISH); - migration_end(); rcu_read_unlock(); + + migration_end(); qemu_put_be64(f, RAM_SAVE_FLAG_EOS); return 0;