[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 14/29] vnc: introduce a single label for error r
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 14/29] vnc: introduce a single label for error returns |
Date: |
Mon, 22 Oct 2012 17:49:47 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Paolo Bonzini <address@hidden> writes:
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> ui/vnc.c | 42 +++++++++++++++++-------------------------
> 1 file modificato, 17 inserzioni(+), 25 rimozioni(-)
>
> diff --git a/ui/vnc.c b/ui/vnc.c
> index 2892fb7..6da265f 100644
> --- a/ui/vnc.c
> +++ b/ui/vnc.c
> @@ -2872,8 +2872,7 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> if (strcmp(display, "none") == 0)
> return 0;
>
> - if (!(vs->display = strdup(display)))
> - return -1;
> + vs->display = g_strdup(display);
> vs->share_policy = VNC_SHARE_POLICY_ALLOW_EXCLUSIVE;
>
> options = display;
> @@ -2885,9 +2884,7 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> "VNC password auth disabled due to FIPS mode, "
> "consider using the VeNCrypt or SASL authentication "
> "methods as an alternative\n");
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> }
> password = 1; /* Require password auth */
> } else if (strncmp(options, "reverse", 7) == 0) {
> @@ -2919,16 +2916,12 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> if (vnc_tls_set_x509_creds_dir(vs, path) < 0) {
> fprintf(stderr, "Failed to find x509 certificates/keys
> in %s\n", path);
> g_free(path);
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> }
> g_free(path);
> } else {
> fprintf(stderr, "No certificate path provided\n");
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> }
> #endif
> #if defined(CONFIG_VNC_TLS) || defined(CONFIG_VNC_SASL)
> @@ -2948,9 +2941,7 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> vs->share_policy = VNC_SHARE_POLICY_FORCE_SHARED;
> } else {
> fprintf(stderr, "unknown vnc share= option\n");
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> }
> }
> }
> @@ -3053,9 +3044,7 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> if ((saslErr = sasl_server_init(NULL, "qemu")) != SASL_OK) {
> fprintf(stderr, "Failed to initialize SASL auth %s",
> sasl_errstring(saslErr, NULL, NULL));
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> }
> #endif
> vs->lock_key_sync = lock_key_sync;
> @@ -3067,9 +3056,7 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
> else
> vs->lsock = inet_connect(display, NULL);
> if (vs->lsock < 0) {
> - g_free(vs->display);
> - vs->display = NULL;
> - return -1;
> + goto fail;
> } else {
> int csock = vs->lsock;
> vs->lsock = -1;
> @@ -3090,13 +3077,18 @@ int vnc_display_open(DisplayState *ds, const char
> *display)
Note: I'm reordering the quoted diff lines slightly for clarity.
> }
> if (vs->lsock < 0) {
> g_free(dpy);
> - return -1;
> + goto fail;
Now additionally executes
g_free(vs->display);
vs->display = NULL;
Silent bug fix?
> - } else {
> - g_free(vs->display);
> - vs->display = dpy;
> }
> + g_free(vs->display);
> + vs->display = dpy;
> + qemu_set_fd_handler2(vs->lsock, NULL, vnc_listen_read, NULL, vs);
> }
> - return qemu_set_fd_handler2(vs->lsock, NULL, vnc_listen_read, NULL, vs);
> + return 0;
> +
> +fail:
> + g_free(vs->display);
> + vs->display = NULL;
> + return -1;
> }
>
> void vnc_display_add_client(DisplayState *ds, int csock, int skipauth)
- [Qemu-devel] [PATCH 11/29] nbd: ask and print error information from qemu-sockets, (continued)
- [Qemu-devel] [PATCH 11/29] nbd: ask and print error information from qemu-sockets, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 15/29] vnc: reorganize code for reverse mode, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 16/29] vnc: add error propagation to vnc_display_open, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 08/29] migration (outgoing): add error propagation for all protocols, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 20/29] qemu-sockets: add error propagation to inet_parse, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 19/29] qemu-sockets: add error propagation to inet_dgram_opts, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 14/29] vnc: introduce a single label for error returns, Paolo Bonzini, 2012/10/19
- Re: [Qemu-devel] [PATCH 14/29] vnc: introduce a single label for error returns,
Markus Armbruster <=
- [Qemu-devel] [PATCH 21/29] qemu-sockets: add error propagation to Unix socket functions, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 23/29] build: add QAPI files to the tools, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 25/29] qemu-sockets: return InetSocketAddress from inet_parse, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 27/29] block: prepare code for adding block notifiers, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 26/29] qemu-sockets: add socket_listen, socket_connect, socket_parse, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 12/29] qemu-ga: ask and print error information from qemu-sockets, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 29/29] qmp: add NBD server commands, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 13/29] vnc: avoid Yoda conditionals, Paolo Bonzini, 2012/10/19
- [Qemu-devel] [PATCH 24/29] qapi: add socket address types, Paolo Bonzini, 2012/10/19