[Libosinfo] [PATCH] Fix error propagation in DB loader

Daniel P. Berrange berrange at redhat.com
Thu Apr 27 17:03:36 UTC 2017


When failing to read the pci/usb ID files we failed to
propagate the reported error.

We also had some dead code which would never be reached
due to earlier gotos.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 osinfo/osinfo_loader.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
index 6c7c009..dca23f1 100644
--- a/osinfo/osinfo_loader.c
+++ b/osinfo/osinfo_loader.c
@@ -2127,9 +2127,6 @@ static void osinfo_loader_process_list(OsinfoLoader *loader,
         tmp++;
     }
 
-    if (lerr)
-        goto cleanup;
-
     /* Phase 2: load data from non-native locations, filtering based
      * on overrides from native locations */
     tmp = dirs;
@@ -2151,15 +2148,13 @@ static void osinfo_loader_process_list(OsinfoLoader *loader,
         }
 
         if (lerr) {
-            break;
+            g_propagate_error(err, lerr);
+            goto cleanup;
         }
 
         tmp++;
     }
 
-    if (lerr)
-        goto cleanup;
-
     /* Phase 3: load combined set of files from native locations */
     g_hash_table_iter_init(&iter, allentries);
     while (g_hash_table_iter_next(&iter, &key, &value)) {
-- 
2.9.3




More information about the Libosinfo mailing list