crypto: Avoid memory leak on failure
commit95c3df5a24e2f18129b58691c2ebaf0d86808525
authorEric Blake <eblake@redhat.com>
Fri, 1 Apr 2016 15:57:02 +0000 (1 09:57 -0600)
committerMax Reitz <mreitz@redhat.com>
Tue, 5 Apr 2016 15:23:21 +0000 (5 17:23 +0200)
treed16c0871122bf07bb6bce744b037c3350aa23f38
parent08db36f6ec29aff59c11c0f7524c2481d8a27636
crypto: Avoid memory leak on failure

Commit 7836857 introduced a memory leak due to invalid use of
Error vs. visit_type_end().  If visiting the intermediate
members fails, we clear the error and unconditionally use
visit_end_struct() on the same error object; but if that
cleanup succeeds, we then skip the qapi_free call.

Until a later patch adds visit_check_struct(), the only safe
approach is to use two separate error objects.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-id: 1459526222-30052-1-git-send-email-eblake@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/crypto.c