From fe2b2f860e1fd7dfdc333f65893e65f131e290c7 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Sat, 9 Mar 2024 09:43:19 +0100 Subject: gnu: orbit2: Fix bug on 32-bit systems. * gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it here. * gnu/packages/gnome.scm (orbit2): Use it here. Change-Id: I72e10fc9d8a5421a7ec6b4ccf1425008b322ea3f Signed-off-by: Liliana Marie Prikler Reviewed-by: Maxim Cournoyer --- .../orbit2-fix-array-allocation-32bit.patch | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch (limited to 'gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch') diff --git a/gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch b/gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch new file mode 100644 index 0000000000..377c09d0a5 --- /dev/null +++ b/gnu/packages/patches/orbit2-fix-array-allocation-32bit.patch @@ -0,0 +1,40 @@ +From 28067b88ad91e794675734bc92bd9c8653b4a46a Mon Sep 17 00:00:00 2001 +Message-ID: <28067b88ad91e794675734bc92bd9c8653b4a46a.1709973702.git.vivien@planete-kraus.eu> +From: Vivien Kraus +Date: Sat, 9 Mar 2024 09:36:56 +0100 +Subject: [PATCH] corba-loc: Do not allocate more tokens than necessary. + +To split the list of locations, the code calls g_strsplit with the +last argument set to G_MAXINT. It means that g_strsplit will try to +allocate a huge array (G_MAXINT + 1, for the final NULL), mostly +filled with NULL. Unfortunately, on 32-bit systems, this is one past +the authorized length for an array. Previous versions of glib would +not care, but the new version now raises an error if this happens. + +To get an array of the appropriate size, we can just pass -1 to the +last argument. + +* src/orb/orb-core/corba-loc.c (ORBit_corbaloc_parse): Replace +G_MAXINT with -1. +--- + src/orb/orb-core/corba-loc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/orb/orb-core/corba-loc.c b/src/orb/orb-core/corba-loc.c +index abfcaa29..6492d392 100644 +--- a/src/orb/orb-core/corba-loc.c ++++ b/src/orb/orb-core/corba-loc.c +@@ -309,7 +309,7 @@ ORBit_corbaloc_parse (const gchar *corbaloc) + if (!(objkey = orbit_url_decode (okey))) + goto ret_error; + +- if (!(token = g_strsplit (loc, ",", G_MAXINT))) ++ if (!(token = g_strsplit (loc, ",", -1))) + goto ret_error; + + /* [ 'iiop' ] ':' [ '//' ] [ version '@' ] host [ ':' port ] */ + +base-commit: 144be2e9860286c83f009e7689250e0af977cc5e +-- +2.41.0 + -- cgit v1.2.3