From: Peter Krempa Date: Thu, 26 Mar 2020 11:08:59 +0000 (+0100) Subject: qemuSecurityChownCallback: Remove 'cleanup' section X-Git-Tag: v6.3.0-rc1~278 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b62b176be2c37a3edd0770449c5c089514200494;p=thirdparty%2Flibvirt.git qemuSecurityChownCallback: Remove 'cleanup' section Treat the shortcut for chowning local files as a stand-alone section by returning success from it and refactor the rest so that the cleanup section is inline. Signed-off-by: Peter Krempa Reviewed-by: Pavel Mores --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ff97f10f11..3d944d2713 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -268,24 +268,20 @@ qemuSecurityChownCallback(const virStorageSource *src, } if (chown(src->path, uid, gid) < 0) - goto cleanup; - } else { - if (!(cpy = virStorageSourceCopy(src, false))) - goto cleanup; - - /* src file init reports errors, return -2 on failure */ - if (virStorageFileInit(cpy) < 0) { - ret = -2; - goto cleanup; - } + return -1; - if (virStorageFileChown(cpy, uid, gid) < 0) - goto cleanup; + return 0; } - ret = 0; + if (!(cpy = virStorageSourceCopy(src, false))) + return -1; + + /* src file init reports errors, return -2 on failure */ + if (virStorageFileInit(cpy) < 0) + return -2; + + ret = virStorageFileChown(cpy, uid, gid); - cleanup: save_errno = errno; virStorageFileDeinit(cpy); errno = save_errno;