From 0b6ac72b7ff4beba18d578d4c3668cc385351026 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 18 Mar 2020 02:13:15 +0000 Subject: [PATCH] main/pin: Fix usage of GError This regressed in https://github.com/ostreedev/ostree/commit/2db79fb398fba2f9ab2e05c517ebccfe1834674b I noticed this while finally getting the installed tests to run in FCOS via kola and `ostree admin pin 0` is now aborting because we were returning TRUE, but no error set. I don't see a reason to try to continue on if we hit an error; the original reporter was requesting support for multiple arguments, but not "ignore invalid requests". --- src/ostree/ot-admin-builtin-pin.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/ostree/ot-admin-builtin-pin.c b/src/ostree/ot-admin-builtin-pin.c index ced0fcf3..d4337e33 100644 --- a/src/ostree/ot-admin-builtin-pin.c +++ b/src/ostree/ot-admin-builtin-pin.c @@ -52,39 +52,28 @@ ot_admin_builtin_pin (int argc, char **argv, OstreeCommandInvocation *invocation return FALSE; } - unsigned int nsuccess = 0; for (unsigned int i = 1; i < argc; i++) { const char *deploy_index_str = argv[i]; const int deploy_index = atoi (deploy_index_str); - g_autoptr(GError) e = NULL; - g_autoptr(OstreeDeployment) target_deployment = ot_admin_get_indexed_deployment (sysroot, deploy_index, &e); + g_autoptr(OstreeDeployment) target_deployment = ot_admin_get_indexed_deployment (sysroot, deploy_index, error); if (!target_deployment) - { - g_print ("Invalid deployment %s: %s\n", deploy_index_str, e->message); - continue; - } + return FALSE; gboolean current_pin = ostree_deployment_is_pinned (target_deployment); const gboolean desired_pin = !opt_unpin; if (current_pin == desired_pin) { g_print ("Deployment %s is already %s\n", deploy_index_str, current_pin ? "pinned" : "unpinned"); - nsuccess++; } else { - g_autoptr(GError) e = NULL; - if (ostree_sysroot_deployment_set_pinned (sysroot, target_deployment, desired_pin, &e)) - { - g_print ("Deployment %s is now %s\n", deploy_index_str, desired_pin ? "pinned" : "unpinned"); - nsuccess++; - } - else - g_print ("Failed to %s deployment %s: %s\n", desired_pin ? "pin" : "unpin", deploy_index_str, e->message); + if (!ostree_sysroot_deployment_set_pinned (sysroot, target_deployment, desired_pin, error)) + return FALSE; + g_print ("Deployment %s is now %s\n", deploy_index_str, desired_pin ? "pinned" : "unpinned"); } } - return nsuccess > 0; + return TRUE; }