From 04ead8ff1e052d2c36a9a82f7e976ff93c1097c6 Mon Sep 17 00:00:00 2001 From: Roberto Ricci Date: Mon, 19 Sep 2022 17:18:49 +0200 Subject: [PATCH] AppStream: fix segfault when updating the cache --- ...h_cache-fix-NULL-pointer-dereference.patch | 29 +++++++++++++++++++ srcpkgs/AppStream/template | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/AppStream/patches/0001-ascli_refresh_cache-fix-NULL-pointer-dereference.patch diff --git a/srcpkgs/AppStream/patches/0001-ascli_refresh_cache-fix-NULL-pointer-dereference.patch b/srcpkgs/AppStream/patches/0001-ascli_refresh_cache-fix-NULL-pointer-dereference.patch new file mode 100644 index 000000000000..d4c9eefa8153 --- /dev/null +++ b/srcpkgs/AppStream/patches/0001-ascli_refresh_cache-fix-NULL-pointer-dereference.patch @@ -0,0 +1,29 @@ +From 979cf340ec0a7774c4137360a7832b4f689ac413 Mon Sep 17 00:00:00 2001 +From: Roberto Ricci +Date: Mon, 19 Sep 2022 16:02:59 +0200 +Subject: [PATCH] ascli_refresh_cache: fix NULL pointer dereference + +The command `appstreamcli refresh-cache --cachepath /tmp/cache` +segfaults. In this code path, `ret` (initialized to `FALSE`) is not +updated when `as_pool_load` returns successfully and sets the `error` +pointer to NULL. Then the code tries to print `error->message`. +--- + tools/ascli-actions-mdata.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/ascli-actions-mdata.c b/tools/ascli-actions-mdata.c +index c77773da..30bfd325 100644 +--- a/tools/ascli-actions-mdata.c ++++ b/tools/ascli-actions-mdata.c +@@ -81,7 +81,7 @@ ascli_refresh_cache (const gchar *cachepath, + ret = as_pool_refresh_system_cache (pool, forced, &cache_updated, &error); + } else { + as_pool_override_cache_locations (pool, cachepath, NULL); +- as_pool_load (pool, NULL, &error); ++ ret = as_pool_load (pool, NULL, &error); + cache_updated = TRUE; + } + +-- +2.37.3 + diff --git a/srcpkgs/AppStream/template b/srcpkgs/AppStream/template index 13689572efd1..d195c300dd49 100644 --- a/srcpkgs/AppStream/template +++ b/srcpkgs/AppStream/template @@ -1,7 +1,7 @@ # Template file for 'AppStream' pkgname=AppStream version=0.15.5 -revision=1 +revision=2 wrksrc="appstream-${version}" build_style=meson build_helper="gir qemu"