summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/glance/files/CVE-2015-3289_2015.1.0.patch')
-rw-r--r--app-admin/glance/files/CVE-2015-3289_2015.1.0.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/app-admin/glance/files/CVE-2015-3289_2015.1.0.patch b/app-admin/glance/files/CVE-2015-3289_2015.1.0.patch
new file mode 100644
index 000000000000..5b697741e408
--- /dev/null
+++ b/app-admin/glance/files/CVE-2015-3289_2015.1.0.patch
@@ -0,0 +1,50 @@
+From 88f92eb11d556bf43e2800a05973ad2da0db0195 Mon Sep 17 00:00:00 2001
+From: Flavio Percoco <flaper87@gmail.com>
+Date: Fri, 8 May 2015 11:44:14 +0200
+Subject: [PATCH] Save image data after setting the data
+
+The image's locations are missing when image's are imported using tasks
+because the ImportToStore task is not saving the image metadata after
+the import. This patch fixes that.
+
+Change-Id: I43dec450d5fc4bee2131d78dbe3c2b2373c3f739
+Closes-bug: #1453068
+(cherry picked from commit 4efb56aae9288952bdb0d368a7c307e8524b80d8)
+---
+ glance/async/flows/base_import.py | 4 ++++
+ glance/tests/unit/async/flows/test_import.py | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/glance/async/flows/base_import.py b/glance/async/flows/base_import.py
+index 487247c..7656bde 100644
+--- a/glance/async/flows/base_import.py
++++ b/glance/async/flows/base_import.py
+@@ -283,6 +283,10 @@ class _ImportToStore(task.Task):
+
+ image_import.set_image_data(image, file_path or self.uri, None)
+
++ # NOTE(flaper87): We need to save the image again after the locations
++ # have been set in the image.
++ self.image_repo.save(image)
++
+
+ class _SaveImage(task.Task):
+
+diff --git a/glance/tests/unit/async/flows/test_import.py b/glance/tests/unit/async/flows/test_import.py
+index 0f355bc..7acd599 100644
+--- a/glance/tests/unit/async/flows/test_import.py
++++ b/glance/tests/unit/async/flows/test_import.py
+@@ -112,6 +112,10 @@ class TestImportTask(test_utils.BaseTestCase):
+ "%s.tasks_import" % image_path)
+ self.assertFalse(os.path.exists(tmp_image_path))
+ self.assertTrue(os.path.exists(image_path))
++ self.assertEqual(1, len(list(self.image.locations)))
++ self.assertEqual("file://%s/%s" % (self.test_dir,
++ self.image.image_id),
++ self.image.locations[0]['url'])
+
+ def test_import_flow_missing_work_dir(self):
+ self.config(engine_mode='serial', group='taskflow_executor')
+--
+2.3.6
+