[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 12/21] qga: Fix latent guest-get-fsinfo error handling bug
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [PATCH 12/21] qga: Fix latent guest-get-fsinfo error handling bug |
Date: |
Thu, 5 Dec 2019 16:29:50 +0000 |
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 <address@hidden>
> Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
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
- Re: [PATCH 12/21] qga: Fix latent guest-get-fsinfo error handling bug,
Vladimir Sementsov-Ogievskiy <=