From 0c1a26f25c73710896d8666b2de11e5215eda366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Wed, 19 Jun 2013 10:53:50 +0300 Subject: [PATCH] del: fix a segfault when trying to delete uninstalled packages --- src/del.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/del.c b/src/del.c index 4e4da08..02d34a7 100644 --- a/src/del.c +++ b/src/del.c @@ -81,6 +81,7 @@ static int del_main(void *pctx, struct apk_database *db, struct apk_string_array struct not_deleted_ctx ndctx = {}; struct apk_name_array *names; struct apk_name **pname; + struct apk_package *pkg; struct apk_changeset changeset = {}; struct apk_change *change; struct apk_provider *p; @@ -92,7 +93,9 @@ static int del_main(void *pctx, struct apk_database *db, struct apk_string_array for (i = 0; i < args->num; i++) { names->item[i] = apk_db_get_name(db, APK_BLOB_STR(args->item[i])); - delete_from_world(apk_pkg_get_installed(names->item[i]), NULL, NULL, ctx); + pkg = apk_pkg_get_installed(names->item[i]); + if (pkg != NULL) + delete_from_world(pkg, NULL, NULL, ctx); } r = apk_solver_solve(db, 0, ctx->world, &changeset);