[ostree] delta: Ensure the from commit exists when applying static delta
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] delta: Ensure the from commit exists when applying static delta
- Date: Tue, 10 Nov 2015 08:53:09 +0000 (UTC)
commit e418acb31bf34fed118eefbc7118c64c490f6c10
Author: Alexander Larsson <alexl redhat com>
Date: Thu Oct 15 16:59:49 2015 +0200
delta: Ensure the from commit exists when applying static delta
src/libostree/ostree-repo-static-delta-core.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/libostree/ostree-repo-static-delta-core.c b/src/libostree/ostree-repo-static-delta-core.c
index f014b61..2168985 100644
--- a/src/libostree/ostree-repo-static-delta-core.c
+++ b/src/libostree/ostree-repo-static-delta-core.c
@@ -245,6 +245,7 @@ ostree_repo_static_delta_execute_offline (OstreeRepo *self,
g_autoptr(GVariant) from_csum_v = NULL;
g_autoptr(GVariant) to_commit = NULL;
gboolean have_to_commit;
+ gboolean have_from_commit;
to_csum_v = g_variant_get_child_value (meta, 3);
if (!ostree_validate_structureof_csum_v (to_csum_v, error))
@@ -257,6 +258,17 @@ ostree_repo_static_delta_execute_offline (OstreeRepo *self,
if (!ostree_validate_structureof_csum_v (from_csum_v, error))
goto out;
from_checksum = ostree_checksum_from_bytes_v (from_csum_v);
+
+ if (!ostree_repo_has_object (self, OSTREE_OBJECT_TYPE_COMMIT, from_checksum,
+ &have_from_commit, cancellable, error))
+ goto out;
+
+ if (!have_from_commit)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Commit %s, which is the delta source, is not in repository", from_checksum);
+ goto out;
+ }
}
if (!ostree_repo_has_object (self, OSTREE_OBJECT_TYPE_COMMIT, to_checksum,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]