From: Markus Armbruster Date: Wed, 4 Dec 2019 09:36:16 +0000 (+0100) Subject: qga: Fix guest-get-fsinfo error API violations X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=292743d976324004d0c4f6f08e6d0589679d40ea;p=qmiga%2Fqemu.git qga: Fix guest-get-fsinfo error API violations build_guest_fsinfo_for_virtual_device() dereferences @errp when build_guest_fsinfo_for_device() fails. That's wrong; see the big comment in error.h. Introduced in commit 46d4c5723e "qga: Add guest-get-fsinfo command". No caller actually passes null. Fix anyway: splice in a local Error *err, and error_propagate(). Cc: Michael Roth Signed-off-by: Markus Armbruster Message-Id: <20191204093625.14836-10-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Vladimir Sementsov-Ogievskiy --- diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 0be301a4ea..10d818c3b2 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -1060,6 +1060,7 @@ static void build_guest_fsinfo_for_virtual_device(char const *syspath, GuestFilesystemInfo *fs, Error **errp) { + Error *err = NULL; DIR *dir; char *dirpath; struct dirent *entry; @@ -1089,10 +1090,11 @@ static void build_guest_fsinfo_for_virtual_device(char const *syspath, g_debug(" slave device '%s'", entry->d_name); path = g_strdup_printf("%s/slaves/%s", syspath, entry->d_name); - build_guest_fsinfo_for_device(path, fs, errp); + build_guest_fsinfo_for_device(path, fs, &err); g_free(path); - if (*errp) { + if (err) { + error_propagate(errp, err); break; } }