From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51620) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yzgr7-0001fD-IB for qemu-devel@nongnu.org; Tue, 02 Jun 2015 03:43:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yzgr3-00014h-R9 for qemu-devel@nongnu.org; Tue, 02 Jun 2015 03:43:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46835) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yzgr3-00014S-M7 for qemu-devel@nongnu.org; Tue, 02 Jun 2015 03:43:21 -0400 From: Markus Armbruster References: <1432205817-16414-1-git-send-email-berrange@redhat.com> <1432205817-16414-2-git-send-email-berrange@redhat.com> <556717F4.7000104@huawei.com> <20150601164621.GA17374@redhat.com> Date: Tue, 02 Jun 2015 09:43:18 +0200 In-Reply-To: <20150601164621.GA17374@redhat.com> (Daniel P. Berrange's message of "Mon, 1 Jun 2015 17:46:22 +0100") Message-ID: <878uc28six.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 01/10] crypto: introduce new module for computing hash digests List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: Kevin Wolf , Paolo Bonzini , Gonglei , qemu-devel@nongnu.org, Gerd Hoffmann "Daniel P. Berrange" writes: > On Thu, May 28, 2015 at 09:28:20PM +0800, Gonglei wrote: >> On 2015/5/21 18:56, Daniel P. Berrange wrote: >> > Introduce a new crypto/ directory that will (eventually) contain >> > all the cryptographic related code. This initially defines a >> > wrapper for initializing gnutls and for computing hashes with >> > gnutls. The former ensures that gnutls is guaranteed to be >> > initialized exactly once in QEMU regardless of CLI args. The >> > block quorum code currently fails to initialize gnutls so it >> > only works by luck, if VNC server TLS is not requested. The >> > hash APIs avoids the need to litter the rest of the code with >> > preprocessor checks and simplifies callers by allocating the >> > correct amount of memory for the requested hash. >> > >> > Signed-off-by: Daniel P. Berrange [...] >> > diff --git a/vl.c b/vl.c >> > index 15bccc4..72313a4 100644 >> > --- a/vl.c >> > +++ b/vl.c >> > @@ -119,6 +119,7 @@ int main(int argc, char **argv) >> > #include "qapi/opts-visitor.h" >> > #include "qom/object_interfaces.h" >> > #include "qapi-event.h" >> > +#include "crypto/init.h" >> > >> > #define DEFAULT_RAM_SIZE 128 >> > >> > @@ -2777,6 +2778,7 @@ int main(int argc, char **argv, char **envp) >> > uint64_t ram_slots = 0; >> > FILE *vmstate_dump_file = NULL; >> > Error *main_loop_err = NULL; >> > + Error *err = NULL; >> > >> > qemu_init_cpu_loop(); >> > qemu_mutex_lock_iothread(); >> > @@ -2819,6 +2821,12 @@ int main(int argc, char **argv, char **envp) >> > >> > runstate_init(); >> > >> > + if (qcrypto_init(&err) < 0) { >> > + fprintf(stderr, "Cannot initialize crypto: %s\n", >> > + error_get_pretty(err)); >> > + error_free(err); >> >> This free is superflous (before exit) IMO. > > Personally I always free variables like this so valgrind doesn't complain > about leaks. Marginally useful when you do it for the complete program. QEMU doesn't, and making all of QEMU do it would be a fool's errand.