diff options
| author | Dan R. K. Ports <dan@drkp.net> | 2026-06-01 12:49:24 +0100 |
|---|---|---|
| committer | Sean Whitton <spwhitton@spwhitton.name> | 2026-06-01 12:49:24 +0100 |
| commit | eac3779a8fc6d952fdb52fe66184c6084b353597 (patch) | |
| tree | b714e3af91ab95bebf9ef492955b48df0c95b2e6 | |
| parent | ba0b29e8086e877b891cbb4869a7afb6d5a1e9d6 (diff) | |
Check whether g_settings_schema_source_get_default returned NULL
* src/pgtkfns.c (parse_resource_key):
* src/xsettings.c (init_gsettings): Check whether
g_settings_schema_source_look up returned NULL (bug#81166).
Copyright-paperwork-exempt: yes
| -rw-r--r-- | src/pgtkfns.c | 2 | ||||
| -rw-r--r-- | src/xsettings.c | 15 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/pgtkfns.c b/src/pgtkfns.c index e1766d2b1a6..ec708af374c 100644 --- a/src/pgtkfns.c +++ b/src/pgtkfns.c @@ -1902,6 +1902,8 @@ parse_resource_key (const char *res_key, char *setting_key) /* check existence of setting_key */ GSettingsSchemaSource *ssrc = g_settings_schema_source_get_default (); + if (ssrc == NULL) + return NULL; /* No GSettings schemas installed. */ GSettingsSchema *scm = g_settings_schema_source_lookup (ssrc, SCHEMA_ID, TRUE); if (!scm) return NULL; /* *.schema.xml is not installed. */ diff --git a/src/xsettings.c b/src/xsettings.c index 71cd6a9ad6c..3c4aff18fa2 100644 --- a/src/xsettings.c +++ b/src/xsettings.c @@ -1100,12 +1100,15 @@ init_gsettings (void) #if GLIB_CHECK_VERSION (2, 32, 0) { - GSettingsSchema *sc = g_settings_schema_source_lookup - (g_settings_schema_source_get_default (), - GSETTINGS_SCHEMA, - true); - schema_found = sc != NULL; - if (sc) g_settings_schema_unref (sc); + GSettingsSchemaSource *source = g_settings_schema_source_get_default + (); + if (source != NULL) + { + GSettingsSchema *sc = g_settings_schema_source_lookup + (source, GSETTINGS_SCHEMA, true); + schema_found = sc != NULL; + if (sc) g_settings_schema_unref (sc); + } } #else { |
