gnu: glib: Fix argument handling in keyfile backend.

* gnu/packages/patches/glib-keyfile-arguments.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/glib.scm (glib)[source](patches): Add it.
This commit is contained in:
Marius Bakke 2019-07-12 16:50:14 +02:00
parent 60ccc1653a
commit ee46474d54
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
3 changed files with 23 additions and 1 deletions

View file

@ -851,6 +851,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/giflib-make-reallocarray-private.patch \
%D%/packages/patches/glib-keyfile-arguments.patch \
%D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.patch \
%D%/packages/patches/glibc-CVE-2015-7547.patch \

View file

@ -168,7 +168,8 @@ (define glib
(sha256
(base32
"0bk2l9mhvc44c0gfg442wrifwj2fci1w71dsp3nb50pffvsivpry"))
(patches (search-patches "glib-tests-timer.patch"))
(patches (search-patches "glib-tests-timer.patch"
"glib-keyfile-arguments.patch"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -0,0 +1,20 @@
Fix a problem with the keyfile backend whereby instantiating it with
the default NULL value would cause an assertion error:
https://gitlab.gnome.org/GNOME/glib/issues/1825
This issue showed up when running the test suites of uhttpmock and spice.
diff --git a/gio/gkeyfilesettingsbackend.c b/gio/gkeyfilesettingsbackend.c
--- a/gio/gkeyfilesettingsbackend.c
+++ b/gio/gkeyfilesettingsbackend.c
@@ -740,7 +740,8 @@ g_keyfile_settings_backend_set_property (GObject *object,
case PROP_FILENAME:
/* Construct only. */
g_assert (kfsb->file == NULL);
- kfsb->file = g_file_new_for_path (g_value_get_string (value));
+ if (g_value_get_string (value))
+ kfsb->file = g_file_new_for_path (g_value_get_string (value));
break;
case PROP_ROOT_PATH: