summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-sysroot.c
diff options
context:
space:
mode:
authorJonathan Lebon <jlebon@redhat.com>2018-02-28 17:30:18 +0000
committerAtomic Bot <atomic-devel@projectatomic.io>2018-02-28 18:09:13 +0000
commit530043fcf6444f5751caa2c478d9411ab78e1698 (patch)
tree16729eb726ac01283286cc30fdb012a5b7799840 /src/libostree/ostree-sysroot.c
parent6db6268dfd76dfb36bd7bd756fe78ba8a1abcd5b (diff)
downloadostree-530043fcf6444f5751caa2c478d9411ab78e1698.tar.gz
lib/sysroot: Fix retrieving non-booted pending deployment
If we're booted into a deployment, then any queries for the pending merge deployment of a non-booted OS will fail due all of them being considered rollback. Fix this by filtering by `osname` *before* determining if we've crossed the booted deployment yet. Closes: #1472 Approved by: cgwalters
Diffstat (limited to 'src/libostree/ostree-sysroot.c')
-rw-r--r--src/libostree/ostree-sysroot.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c
index 2c12b78b..2d12deb6 100644
--- a/src/libostree/ostree-sysroot.c
+++ b/src/libostree/ostree-sysroot.c
@@ -1202,6 +1202,10 @@ ostree_sysroot_query_deployments_for (OstreeSysroot *self,
{
OstreeDeployment *deployment = self->deployments->pdata[i];
+ /* Ignore deployments not for this osname */
+ if (strcmp (ostree_deployment_get_osname (deployment), osname) != 0)
+ continue;
+
/* Is this deployment booted? If so, note we're past the booted */
if (self->booted_deployment != NULL &&
ostree_deployment_equal (deployment, self->booted_deployment))
@@ -1210,10 +1214,6 @@ ostree_sysroot_query_deployments_for (OstreeSysroot *self,
continue;
}
- /* Ignore deployments not for this osname */
- if (strcmp (ostree_deployment_get_osname (deployment), osname) != 0)
- continue;
-
if (!found_booted && !ret_pending)
ret_pending = g_object_ref (deployment);
else if (found_booted && !ret_rollback)