From 1ee4007a75971080bd760e8d188a369ba9c10840 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 10 Sep 2015 19:42:28 +0200 Subject: [PATCH] offline delta apply: Handle the version field It seems the format changed and this code was not updated. --- src/libostree/ostree-repo-static-delta-core.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libostree/ostree-repo-static-delta-core.c b/src/libostree/ostree-repo-static-delta-core.c index f695026e..cd2940ba 100644 --- a/src/libostree/ostree-repo-static-delta-core.c +++ b/src/libostree/ostree-repo-static-delta-core.c @@ -273,6 +273,7 @@ ostree_repo_static_delta_execute_offline (OstreeRepo *self, n = g_variant_n_children (headers); for (i = 0; i < n; i++) { + guint32 version; guint64 size; guint64 usize; const guchar *csum; @@ -285,7 +286,14 @@ ostree_repo_static_delta_execute_offline (OstreeRepo *self, g_autoptr(GInputStream) in = NULL; header = g_variant_get_child_value (headers, i); - g_variant_get (header, "(@aytt@ay)", &csum_v, &size, &usize, &objects); + g_variant_get (header, "(u@aytt@ay)", &version, &csum_v, &size, &usize, &objects); + + if (version > OSTREE_DELTAPART_VERSION) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Delta part has too new version %u", version); + goto out; + } if (!_ostree_repo_static_delta_part_have_all_objects (self, objects, &have_all, cancellable, error))