[Libosinfo] [PATCH] Fix error propagation in DB loader
Roman Bogorodskiy
bogorodskiy at gmail.com
Fri Apr 28 13:57:57 UTC 2017
Daniel P. Berrange wrote:
> 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)) {
I gave it a test and it improves things, e.g.:
$ ./tools/osinfo-query os
Error loading OS data: Error opening file:
$
test-loader fails with that:
test-loader.c:36:F:Core:test_basic:0: Error opening file: No such file or directory
Maybe it will make sense to include the actual filename? Because from
user perspective it's not quite obvious what file it's trying to open.
Roman Bogorodskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libosinfo/attachments/20170428/2d1da61e/attachment.sig>
More information about the Libosinfo
mailing list