mirror of https://github.com/xemu-project/xemu.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 <mdroth@linux.vnet.ibm.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191204093625.14836-10-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
This commit is contained in:
parent
f6166a4da5
commit
292743d976
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue