From 5f758366c0710d23e43f4d0f83816b98616a13d0 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Mon, 19 May 2014 18:57:34 +0200 Subject: char: Use return values instead of error_is_set(errp) Using error_is_set(errp) to check whether a function call failed is fragile: it breaks when errp is null. Check perfectly suitable return values instead when possible. As far as I can tell, errp can't be null there, but this is more robust and more obviously correct Signed-off-by: Markus Armbruster Signed-off-by: Gerd Hoffmann --- qemu-char.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 54ed244542..3eaefc9244 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3251,7 +3251,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts, } } ret = qmp_chardev_add(bid ? bid : id, backend, errp); - if (error_is_set(errp)) { + if (!ret) { goto qapi_out; } @@ -3263,7 +3263,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts, backend->kind = CHARDEV_BACKEND_KIND_MUX; backend->mux->chardev = g_strdup(bid); ret = qmp_chardev_add(id, backend, errp); - if (error_is_set(errp)) { + if (!ret) { chr = qemu_chr_find(bid); qemu_chr_delete(chr); chr = NULL; @@ -3620,18 +3620,18 @@ static int qmp_chardev_open_file_source(char *src, int flags, static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp) { - int flags, in = -1, out = -1; + int flags, in = -1, out; flags = O_WRONLY | O_TRUNC | O_CREAT | O_BINARY; out = qmp_chardev_open_file_source(file->out, flags, errp); - if (error_is_set(errp)) { + if (out < 0) { return NULL; } if (file->has_in) { flags = O_RDONLY; in = qmp_chardev_open_file_source(file->in, flags, errp); - if (error_is_set(errp)) { + if (in < 0) { qemu_close(out); return NULL; } @@ -3647,7 +3647,7 @@ static CharDriverState *qmp_chardev_open_serial(ChardevHostdev *serial, int fd; fd = qmp_chardev_open_file_source(serial->device, O_RDWR, errp); - if (error_is_set(errp)) { + if (fd < 0) { return NULL; } qemu_set_nonblock(fd); @@ -3665,7 +3665,7 @@ static CharDriverState *qmp_chardev_open_parallel(ChardevHostdev *parallel, int fd; fd = qmp_chardev_open_file_source(parallel->device, O_RDWR, errp); - if (error_is_set(errp)) { + if (fd < 0) { return NULL; } return qemu_chr_open_pp_fd(fd); @@ -3692,7 +3692,7 @@ static CharDriverState *qmp_chardev_open_socket(ChardevSocket *sock, } else { fd = socket_connect(addr, errp, NULL, NULL); } - if (error_is_set(errp)) { + if (fd < 0) { return NULL; } return qemu_chr_open_socket_fd(fd, do_nodelay, is_listen, @@ -3705,7 +3705,7 @@ static CharDriverState *qmp_chardev_open_udp(ChardevUdp *udp, int fd; fd = socket_dgram(udp->remote, udp->local, errp); - if (error_is_set(errp)) { + if (fd < 0) { return NULL; } return qemu_chr_open_udp_fd(fd); -- cgit v1.2.3