30.11.2019 22:42, Markus Armbruster wrote: > build_guest_fsinfo_for_virtual_device() crashes when > build_guest_fsinfo_for_device() fails and its @errp argument is null. > Messed up in commit 46d4c5723e "qga: Add guest-get-fsinfo command". > > The bug can't bite as no caller actually passes null. Fix it anyway. > > Cc: Michael Roth <mdr...@linux.vnet.ibm.com> > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Actually, all such bugs should be fixed by my auto-generated series.. And, if fixing by hand, it may be better to teach this function to return int, than propagation is not needed. > --- > qga/commands-posix.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/qga/commands-posix.c b/qga/commands-posix.c > index 1c1a165dae..0be527ccb8 100644 > --- a/qga/commands-posix.c > +++ b/qga/commands-posix.c > @@ -1049,6 +1049,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; > @@ -1078,10 +1079,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; > } > } > -- Best regards, Vladimir