summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/glib-CVE-2021-27219-04.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/glib-CVE-2021-27219-04.patch')
-rw-r--r--gnu/packages/patches/glib-CVE-2021-27219-04.patch308
1 files changed, 0 insertions, 308 deletions
diff --git a/gnu/packages/patches/glib-CVE-2021-27219-04.patch b/gnu/packages/patches/glib-CVE-2021-27219-04.patch
deleted file mode 100644
index 3ae01f34b1..0000000000
--- a/gnu/packages/patches/glib-CVE-2021-27219-04.patch
+++ /dev/null
@@ -1,308 +0,0 @@
-Backport of:
-
-From 0736b7c1e7cf4232c5d7eb2b0fbfe9be81bd3baa Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@endlessos.org>
-Date: Thu, 4 Feb 2021 13:41:21 +0000
-Subject: [PATCH 04/11] glib: Use g_memdup2() instead of g_memdup() in obvious
- places
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Convert all the call sites which use `g_memdup()`’s length argument
-trivially (for example, by passing a `sizeof()` or an existing `gsize`
-variable), so that they use `g_memdup2()` instead.
-
-In almost all of these cases the use of `g_memdup()` would not have
-caused problems, but it will soon be deprecated, so best port away from
-it
-
-In particular, this fixes an overflow within `g_bytes_new()`, identified
-as GHSL-2021-045 by GHSL team member Kevin Backhouse.
-
-Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-Fixes: GHSL-2021-045
-Helps: #2319
----
- glib/gbytes.c | 6 ++++--
- glib/gdir.c | 3 ++-
- glib/ghash.c | 7 ++++---
- glib/giochannel.c | 3 ++-
- glib/gslice.c | 3 ++-
- glib/gtestutils.c | 3 ++-
- glib/gvariant.c | 7 ++++---
- glib/gvarianttype.c | 3 ++-
- glib/tests/array-test.c | 4 +++-
- glib/tests/option-context.c | 6 ++++--
- 10 files changed, 29 insertions(+), 16 deletions(-)
-
-diff --git a/glib/gbytes.c b/glib/gbytes.c
-index d56abe6c3..dee494820 100644
---- a/glib/gbytes.c
-+++ b/glib/gbytes.c
-@@ -34,6 +34,8 @@
-
- #include <string.h>
-
-+#include "gstrfuncsprivate.h"
-+
- /**
- * GBytes:
- *
-@@ -95,7 +97,7 @@ g_bytes_new (gconstpointer data,
- {
- g_return_val_if_fail (data != NULL || size == 0, NULL);
-
-- return g_bytes_new_take (g_memdup (data, size), size);
-+ return g_bytes_new_take (g_memdup2 (data, size), size);
- }
-
- /**
-@@ -499,7 +501,7 @@ g_bytes_unref_to_data (GBytes *bytes,
- * Copy: Non g_malloc (or compatible) allocator, or static memory,
- * so we have to copy, and then unref.
- */
-- result = g_memdup (bytes->data, bytes->size);
-+ result = g_memdup2 (bytes->data, bytes->size);
- *size = bytes->size;
- g_bytes_unref (bytes);
- }
-diff --git a/glib/gdir.c b/glib/gdir.c
-index 6b85e99c8..6747a8c6f 100644
---- a/glib/gdir.c
-+++ b/glib/gdir.c
-@@ -37,6 +37,7 @@
- #include "gconvert.h"
- #include "gfileutils.h"
- #include "gstrfuncs.h"
-+#include "gstrfuncsprivate.h"
- #include "gtestutils.h"
- #include "glibintl.h"
-
-@@ -112,7 +113,7 @@ g_dir_open_with_errno (const gchar *path,
- return NULL;
- #endif
-
-- return g_memdup (&dir, sizeof dir);
-+ return g_memdup2 (&dir, sizeof dir);
- }
-
- /**
-diff --git a/glib/ghash.c b/glib/ghash.c
-index e61b03788..26f26062b 100644
---- a/glib/ghash.c
-+++ b/glib/ghash.c
-@@ -34,6 +34,7 @@
- #include "gmacros.h"
- #include "glib-private.h"
- #include "gstrfuncs.h"
-+#include "gstrfuncsprivate.h"
- #include "gatomic.h"
- #include "gtestutils.h"
- #include "gslice.h"
-@@ -964,7 +965,7 @@ g_hash_table_ensure_keyval_fits (GHashTable *hash_table, gpointer key, gpointer
- if (hash_table->have_big_keys)
- {
- if (key != value)
-- hash_table->values = g_memdup (hash_table->keys, sizeof (gpointer) * hash_table->size);
-+ hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
- /* Keys and values are both big now, so no need for further checks */
- return;
- }
-@@ -972,7 +973,7 @@ g_hash_table_ensure_keyval_fits (GHashTable *hash_table, gpointer key, gpointer
- {
- if (key != value)
- {
-- hash_table->values = g_memdup (hash_table->keys, sizeof (guint) * hash_table->size);
-+ hash_table->values = g_memdup2 (hash_table->keys, sizeof (guint) * hash_table->size);
- is_a_set = FALSE;
- }
- }
-@@ -1000,7 +1001,7 @@ g_hash_table_ensure_keyval_fits (GHashTable *hash_table, gpointer key, gpointer
-
- /* Just split if necessary */
- if (is_a_set && key != value)
-- hash_table->values = g_memdup (hash_table->keys, sizeof (gpointer) * hash_table->size);
-+ hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
-
- #endif
- }
-diff --git a/glib/giochannel.c b/glib/giochannel.c
-index 1956e9dc6..15927c391 100644
---- a/glib/giochannel.c
-+++ b/glib/giochannel.c
-@@ -37,6 +37,7 @@
- #include "giochannel.h"
-
- #include "gstrfuncs.h"
-+#include "gstrfuncsprivate.h"
- #include "gtestutils.h"
- #include "glibintl.h"
-
-@@ -892,7 +893,7 @@ g_io_channel_set_line_term (GIOChannel *channel,
- length = strlen (line_term);
-
- g_free (channel->line_term);
-- channel->line_term = line_term ? g_memdup (line_term, length) : NULL;
-+ channel->line_term = line_term ? g_memdup2 (line_term, length) : NULL;
- channel->line_term_len = length;
- }
-
-diff --git a/glib/gslice.c b/glib/gslice.c
-index 4c758c3be..bcdbb8853 100644
---- a/glib/gslice.c
-+++ b/glib/gslice.c
-@@ -41,6 +41,7 @@
- #include "gmain.h"
- #include "gmem.h" /* gslice.h */
- #include "gstrfuncs.h"
-+#include "gstrfuncsprivate.h"
- #include "gutils.h"
- #include "gtrashstack.h"
- #include "gtestutils.h"
-@@ -350,7 +351,7 @@ g_slice_get_config_state (GSliceConfig ckey,
- array[i++] = allocator->contention_counters[address];
- array[i++] = allocator_get_magazine_threshold (allocator, address);
- *n_values = i;
-- return g_memdup (array, sizeof (array[0]) * *n_values);
-+ return g_memdup2 (array, sizeof (array[0]) * *n_values);
- default:
- return NULL;
- }
-diff --git a/glib/gtestutils.c b/glib/gtestutils.c
-index dd789482f..5887ecc36 100644
---- a/glib/gtestutils.c
-+++ b/glib/gtestutils.c
-@@ -49,6 +49,7 @@
- #include "gpattern.h"
- #include "grand.h"
- #include "gstrfuncs.h"
-+#include "gstrfuncsprivate.h"
- #include "gtimer.h"
- #include "gslice.h"
- #include "gspawn.h"
-@@ -3798,7 +3799,7 @@ g_test_log_extract (GTestLogBuffer *tbuffer)
- if (p <= tbuffer->data->str + mlength)
- {
- g_string_erase (tbuffer->data, 0, mlength);
-- tbuffer->msgs = g_slist_prepend (tbuffer->msgs, g_memdup (&msg, sizeof (msg)));
-+ tbuffer->msgs = g_slist_prepend (tbuffer->msgs, g_memdup2 (&msg, sizeof (msg)));
- return TRUE;
- }
-
-diff --git a/glib/gvariant.c b/glib/gvariant.c
-index b61bf7278..d6f68a9ea 100644
---- a/glib/gvariant.c
-+++ b/glib/gvariant.c
-@@ -33,6 +33,7 @@
-
- #include <string.h>
-
-+#include "gstrfuncsprivate.h"
-
- /**
- * SECTION:gvariant
-@@ -725,7 +726,7 @@ g_variant_new_variant (GVariant *value)
- g_variant_ref_sink (value);
-
- return g_variant_new_from_children (G_VARIANT_TYPE_VARIANT,
-- g_memdup (&value, sizeof value),
-+ g_memdup2 (&value, sizeof value),
- 1, g_variant_is_trusted (value));
- }
-
-@@ -1229,7 +1230,7 @@ g_variant_new_fixed_array (const GVariantType *element_type,
- return NULL;
- }
-
-- data = g_memdup (elements, n_elements * element_size);
-+ data = g_memdup2 (elements, n_elements * element_size);
- value = g_variant_new_from_data (array_type, data,
- n_elements * element_size,
- FALSE, g_free, data);
-@@ -1908,7 +1909,7 @@ g_variant_dup_bytestring (GVariant *value,
- if (length)
- *length = size;
-
-- return g_memdup (original, size + 1);
-+ return g_memdup2 (original, size + 1);
- }
-
- /**
-diff --git a/glib/gvarianttype.c b/glib/gvarianttype.c
-index 1a228f73b..07659ff12 100644
---- a/glib/gvarianttype.c
-+++ b/glib/gvarianttype.c
-@@ -28,6 +28,7 @@
-
- #include <string.h>
-
-+#include "gstrfuncsprivate.h"
-
- /**
- * SECTION:gvarianttype
-@@ -1181,7 +1182,7 @@ g_variant_type_new_tuple (const GVariantType * const *items,
- g_assert (offset < sizeof buffer);
- buffer[offset++] = ')';
-
-- return (GVariantType *) g_memdup (buffer, offset);
-+ return (GVariantType *) g_memdup2 (buffer, offset);
- }
-
- /**
-diff --git a/glib/tests/array-test.c b/glib/tests/array-test.c
-index 3fcf1136a..11982f822 100644
---- a/glib/tests/array-test.c
-+++ b/glib/tests/array-test.c
-@@ -29,6 +29,8 @@
- #include <string.h>
- #include "glib.h"
-
-+#include "gstrfuncsprivate.h"
-+
- /* Test data to be passed to any function which calls g_array_new(), providing
- * the parameters for that call. Most #GArray tests should be repeated for all
- * possible values of #ArrayTestData. */
-@@ -1642,7 +1644,7 @@ byte_array_new_take (void)
- GByteArray *gbarray;
- guint8 *data;
-
-- data = g_memdup ("woooweeewow", 11);
-+ data = g_memdup2 ("woooweeewow", 11);
- gbarray = g_byte_array_new_take (data, 11);
- g_assert (gbarray->data == data);
- g_assert_cmpuint (gbarray->len, ==, 11);
-diff --git a/glib/tests/option-context.c b/glib/tests/option-context.c
-index 149d22353..88d2b80d1 100644
---- a/glib/tests/option-context.c
-+++ b/glib/tests/option-context.c
-@@ -27,6 +27,8 @@
- #include <string.h>
- #include <locale.h>
-
-+#include "gstrfuncsprivate.h"
-+
- static GOptionEntry main_entries[] = {
- { "main-switch", 0, 0,
- G_OPTION_ARG_NONE, NULL,
-@@ -256,7 +258,7 @@ join_stringv (int argc, char **argv)
- static char **
- copy_stringv (char **argv, int argc)
- {
-- return g_memdup (argv, sizeof (char *) * (argc + 1));
-+ return g_memdup2 (argv, sizeof (char *) * (argc + 1));
- }
-
- static void
-@@ -2323,7 +2325,7 @@ test_group_parse (void)
- g_option_context_add_group (context, group);
-
- argv = split_string ("program --test arg1 -f arg2 --group-test arg3 --frob arg4 -z arg5", &argc);
-- orig_argv = g_memdup (argv, (argc + 1) * sizeof (char *));
-+ orig_argv = g_memdup2 (argv, (argc + 1) * sizeof (char *));
-
- retval = g_option_context_parse (context, &argc, &argv, &error);
-
---
-2.30.1
-