Re: [PATCH v2 09/18] qga: Fix guest-get-fsinfo error API violations

2019-12-04 Thread Philippe Mathieu-Daudé

On 12/4/19 10:36 AM, Markus Armbruster wrote:

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 
---
  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, );
  g_free(path);
  
-if (*errp) {

+if (err) {
+error_propagate(errp, err);
  break;
  }
  }



Reviewed-by: Philippe Mathieu-Daudé 




[PATCH v2 09/18] qga: Fix guest-get-fsinfo error API violations

2019-12-04 Thread Markus Armbruster
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 
---
 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, );
 g_free(path);
 
-if (*errp) {
+if (err) {
+error_propagate(errp, err);
 break;
 }
 }
-- 
2.21.0