Blame SOURCES/0001-tests-Allocate-gvariant-data-from-the-heap-to-guaran.patch

2d3b65
From 85c4031696add9797e2334ced20678edcd96c869 Mon Sep 17 00:00:00 2001
2d3b65
From: Mart Raudsepp <leio@gentoo.org>
2d3b65
Date: Wed, 19 Dec 2018 16:22:21 +0200
2d3b65
Subject: [PATCH 1/2] tests: Allocate gvariant data from the heap to guarantee
2d3b65
 alignment
2d3b65
2d3b65
On glib-2-58 branch we don't have !455, thus we need aligned data
2d3b65
for the gvariant tests to not fail on i686.
2d3b65
2d3b65
Fixes #1626
2d3b65
---
2d3b65
 glib/tests/gvariant.c | 15 ++++++++++++---
2d3b65
 1 file changed, 12 insertions(+), 3 deletions(-)
2d3b65
2d3b65
diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c
2d3b65
index 6e417f6c1..a7b19826d 100644
2d3b65
--- a/glib/tests/gvariant.c
2d3b65
+++ b/glib/tests/gvariant.c
2d3b65
@@ -4664,6 +4664,7 @@ test_stack_dict_init (void)
2d3b65
 static void
2d3b65
 test_normal_checking_tuples (void)
2d3b65
 {
2d3b65
+  gpointer aligned_data;
2d3b65
   const guint8 data[] = {
2d3b65
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2d3b65
     'a', '(', 'a', 'o', 'a', 'o', 'a', 'a', 'o', 'a', 'a', 'o', ')'
2d3b65
@@ -4672,13 +4673,15 @@ test_normal_checking_tuples (void)
2d3b65
   GVariant *variant = NULL;
2d3b65
   GVariant *normal_variant = NULL;
2d3b65
 
2d3b65
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
2d3b65
+  aligned_data = g_memdup (data, size); /* guarantee alignment */
2d3b65
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
2d3b65
                                      FALSE, NULL, NULL);
2d3b65
   g_assert_nonnull (variant);
2d3b65
 
2d3b65
   normal_variant = g_variant_get_normal_form (variant);
2d3b65
   g_assert_nonnull (normal_variant);
2d3b65
 
2d3b65
+  g_free (aligned_data);
2d3b65
   g_variant_unref (normal_variant);
2d3b65
   g_variant_unref (variant);
2d3b65
 }
2d3b65
@@ -4790,6 +4793,7 @@ test_recursion_limits_array_in_variant (void)
2d3b65
 static void
2d3b65
 test_normal_checking_array_offsets (void)
2d3b65
 {
2d3b65
+  gpointer aligned_data;
2d3b65
   const guint8 data[] = {
2d3b65
     0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
2d3b65
     'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'g',
2d3b65
@@ -4798,13 +4802,15 @@ test_normal_checking_array_offsets (void)
2d3b65
   GVariant *variant = NULL;
2d3b65
   GVariant *normal_variant = NULL;
2d3b65
 
2d3b65
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
2d3b65
+  aligned_data = g_memdup (data, size); /* guarantee alignment */
2d3b65
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
2d3b65
                                      FALSE, NULL, NULL);
2d3b65
   g_assert_nonnull (variant);
2d3b65
 
2d3b65
   normal_variant = g_variant_get_normal_form (variant);
2d3b65
   g_assert_nonnull (normal_variant);
2d3b65
 
2d3b65
+  g_free (aligned_data);
2d3b65
   g_variant_unref (normal_variant);
2d3b65
   g_variant_unref (variant);
2d3b65
 }
2d3b65
@@ -4838,6 +4844,7 @@ test_normal_checking_tuple_offsets (void)
2d3b65
 static void
2d3b65
 test_normal_checking_empty_object_path (void)
2d3b65
 {
2d3b65
+  gpointer aligned_data;
2d3b65
   const guint8 data[] = {
2d3b65
     0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
2d3b65
     '(', 'h', '(', 'a', 'i', 'a', 'b', 'i', 'o', ')', ')',
2d3b65
@@ -4846,13 +4853,15 @@ test_normal_checking_empty_object_path (void)
2d3b65
   GVariant *variant = NULL;
2d3b65
   GVariant *normal_variant = NULL;
2d3b65
 
2d3b65
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
2d3b65
+  aligned_data = g_memdup (data, size); /* guarantee alignment */
2d3b65
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
2d3b65
                                      FALSE, NULL, NULL);
2d3b65
   g_assert_nonnull (variant);
2d3b65
 
2d3b65
   normal_variant = g_variant_get_normal_form (variant);
2d3b65
   g_assert_nonnull (normal_variant);
2d3b65
 
2d3b65
+  g_free (aligned_data);
2d3b65
   g_variant_unref (normal_variant);
2d3b65
   g_variant_unref (variant);
2d3b65
 }
2d3b65
-- 
2d3b65
2.19.1
2d3b65