[ostree] offline delta apply: Handle the version field



commit 1ee4007a75971080bd760e8d188a369ba9c10840
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Sep 10 19:42:28 2015 +0200

    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 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/libostree/ostree-repo-static-delta-core.c b/src/libostree/ostree-repo-static-delta-core.c
index f695026..cd2940b 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))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]