qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] block: initialize qcrypto API at startup


From: Alex Bligh
Subject: Re: [Qemu-devel] [PATCH] block: initialize qcrypto API at startup
Date: Wed, 6 Apr 2016 12:41:23 +0100

On 6 Apr 2016, at 12:12, Daniel P. Berrange <address@hidden> wrote:

> Any programs which call the qcrypto APIs should ensure that
> qcrypto_init() has been called before anything else which
> can use crypto. Essentially this means right at the start
> of the main method before initializing anything else.
> 
> This is important because some versions of gnutls/gcrypt
> require explicit initialization before use.
> 
> Signed-off-by: Daniel P. Berrange <address@hidden>

Reviewed-by: Alex Bligh <address@hidden>
Tested-by: Alex Bligh <address@hidden>

> ---
> qemu-img.c | 6 ++++++
> qemu-io.c  | 6 ++++++
> qemu-nbd.c | 7 +++++++
> 3 files changed, 19 insertions(+)
> 
> diff --git a/qemu-img.c b/qemu-img.c
> index 17c5cfd..1697762 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -37,6 +37,7 @@
> #include "block/block_int.h"
> #include "block/blockjob.h"
> #include "block/qapi.h"
> +#include "crypto/init.h"
> #include <getopt.h>
> 
> #define QEMU_IMG_VERSION "qemu-img version " QEMU_VERSION QEMU_PKGVERSION \
> @@ -3486,6 +3487,11 @@ int main(int argc, char **argv)
>         exit(EXIT_FAILURE);
>     }
> 
> +    if (qcrypto_init(&local_error) < 0) {
> +        error_reportf_err(local_error, "cannot initialize crypto: ");
> +        exit(1);
> +    }
> +
>     module_call_init(MODULE_INIT_QOM);
>     bdrv_init();
>     if (argc < 2) {
> diff --git a/qemu-io.c b/qemu-io.c
> index 0a738f1..288bba8 100644
> --- a/qemu-io.c
> +++ b/qemu-io.c
> @@ -23,6 +23,7 @@
> #include "sysemu/block-backend.h"
> #include "block/block_int.h"
> #include "trace/control.h"
> +#include "crypto/init.h"
> 
> #define CMD_NOFILE_OK   0x01
> 
> @@ -443,6 +444,11 @@ int main(int argc, char **argv)
>     progname = basename(argv[0]);
>     qemu_init_exec_dir(argv[0]);
> 
> +    if (qcrypto_init(&local_error) < 0) {
> +        error_reportf_err(local_error, "cannot initialize crypto: ");
> +        exit(1);
> +    }
> +
>     module_call_init(MODULE_INIT_QOM);
>     qemu_add_opts(&qemu_object_opts);
>     bdrv_init();
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index ca4a724..fa91ca3 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -31,6 +31,7 @@
> #include "qapi/qmp/qstring.h"
> #include "qom/object_interfaces.h"
> #include "io/channel-socket.h"
> +#include "crypto/init.h"
> 
> #include <getopt.h>
> #include <libgen.h>
> @@ -518,6 +519,12 @@ int main(int argc, char **argv)
>     memset(&sa_sigterm, 0, sizeof(sa_sigterm));
>     sa_sigterm.sa_handler = termsig_handler;
>     sigaction(SIGTERM, &sa_sigterm, NULL);
> +
> +    if (qcrypto_init(&local_err) < 0) {
> +        error_reportf_err(local_err, "cannot initialize crypto: ");
> +        exit(1);
> +    }
> +
>     module_call_init(MODULE_INIT_QOM);
>     qemu_add_opts(&qemu_object_opts);
>     qemu_init_exec_dir(argv[0]);
> -- 
> 2.5.5
> 
> 

-- 
Alex Bligh







reply via email to

[Prev in Thread] Current Thread [Next in Thread]