Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package glib2 for openSUSE:Factory checked in at 2023-12-08 22:31:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glib2 (Old) and /work/SRC/openSUSE:Factory/.glib2.new.25432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glib2" Fri Dec 8 22:31:10 2023 rev:275 rq:1131631 version:2.78.3 Changes: -------- --- /work/SRC/openSUSE:Factory/glib2/glib2.changes 2023-11-29 21:19:42.870922049 +0100 +++ /work/SRC/openSUSE:Factory/.glib2.new.25432/glib2.changes 2023-12-08 22:31:11.346091718 +0100 @@ -1,0 +2,29 @@ +Thu Dec 7 10:52:01 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 2.78.3: + + Fix a crash-causing regression in xdgmime + + Bugs fixed: + - Crash in __gio_xdg_cache_mime_type_subclass + - Backport âxdgmime: Update to upstream commit c2c814d4051f232â + to glib-2-78 + +------------------------------------------------------------------- +Tue Dec 5 15:35:51 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 2.78.2: + + Bugs fixed: + - check for #ifdef PTRACE_O_EXITKILL will always fail since it + isn't a macro + - gsubprocess build-time test intermittently timing out since + 2.78.1 + - âmeson: Improve PTRACE_O_EXITKILL presence checkâ + - âMake GQuark register intentional leaksâ + - âgsignalgroup: Avoid function call with side effect in + g_return_* macroâ + - âtests: Don't assume that sh optimizes simple commands into + execâ + - âxdgmime: Handle buggy type definitions with circular + inheritanceâ + - âcollate: Don't segfault on bad inputâ + +------------------------------------------------------------------- @@ -399 +428,18 @@ -- Drop glib2-dbus-socket-path.patch: fixed upstream. +- Drop patches: + + glib2-dbus-socket-path.patch: fixed upstream. + + glib2-fix-normal-form-handling-in-gvariant.patch: fixed upstream + +------------------------------------------------------------------- +Tue Feb 23 16:14:12 UTC 2023 - Alynx Zhou <alynx.z...@suse.com> + +- Update glib2-fix-normal-form-handling-in-gvariant.patch: + Backported from upstream to fix regression on s390x. + (bsc#1210135, glgo#GNOME/glib!2978) + +------------------------------------------------------------------- +Fri Feb 23 15:00:15 UTC 2023 - Alynx Zhou <alynx.z...@suse.com> + +- Add glib2-fix-normal-form-handling-in-gvariant.patch: Backported + from upstream to fix normal form handling in GVariant. + (CVE-2023-24593, CVE-2023-25180, bsc#1209714, bsc#1209713, + glgo#GNOME/glib!3125) Old: ---- glib-2.78.1.tar.xz New: ---- glib-2.78.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glib2.spec ++++++ --- /var/tmp/diff_new_pack.eRshu3/_old 2023-12-08 22:31:12.658139994 +0100 +++ /var/tmp/diff_new_pack.eRshu3/_new 2023-12-08 22:31:12.658139994 +0100 @@ -30,7 +30,7 @@ %define libgthread libgthread-%{libver} %bcond_without systemtap Name: glib2%{psuffix} -Version: 2.78.1 +Version: 2.78.3 Release: 0 Summary: General-Purpose Utility Library License: LGPL-2.1-or-later ++++++ glib-2.78.1.tar.xz -> glib-2.78.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/NEWS new/glib-2.78.3/NEWS --- old/glib-2.78.1/NEWS 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/NEWS 2023-12-06 19:03:55.000000000 +0100 @@ -1,3 +1,37 @@ +Overview of changes in GLib 2.78.3, 2023-12-06 +============================================== + +* Fix a crash-causing regression in xdgmime (#3191, work by Philip Withnall) + +* Bugs fixed: + - #3191 Crash in __gio_xdg_cache_mime_type_subclass (Philip Withnall) + - !3747 Backport !3742 âxdgmime: Update to upstream commit c2c814d4051f232â to + glib-2-78 + + +Overview of changes in GLib 2.78.2, 2023-12-05 +============================================== + +* Bugs fixed: + - #3156 check for #ifdef PTRACE_O_EXITKILL will always fail since it isn't a + macro (Alessandro Bono) + - #3157 gsubprocess build-time test intermittently timing out since 2.78.1 + (Simon McVittie) + - !3673 Backport !3669 âmeson: Improve PTRACE_O_EXITKILL presence checkâ to + glib-2-78 + - !3680 Backport !3677 âMake GQuark register intentional leaksâ to glib-2-78 + - !3681 Backport 3678 âgsignalgroup: Avoid function call with side effect in + g_return_* macroâ to glib-2-78 + - !3686 Backport !3685 âtests: Don't assume that sh optimizes simple commands + into execâ to glib-2-78 + - !3718 Backport !3714 âxdgmime: Handle buggy type definitions with circular + inheritanceâ to glib-2-78 + - !3727 Backport !3725 âcollate: Don't segfault on bad inputâ to glib-2-78 + +* Translation updates: + - Ukrainian (Yuri Chornoivan) + + Overview of changes in GLib 2.78.1, 2023-10-25 ============================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/tests/gsubprocess-testprog.c new/glib-2.78.3/gio/tests/gsubprocess-testprog.c --- old/glib-2.78.1/gio/tests/gsubprocess-testprog.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/tests/gsubprocess-testprog.c 2023-12-06 19:03:55.000000000 +0100 @@ -275,7 +275,7 @@ /* Run sleep "forever" in a shell; this will trigger PTRACE_EVENT_EXEC */ g_ptr_array_add (args, g_strdup ("sh")); g_ptr_array_add (args, g_strdup ("-c")); - g_ptr_array_add (args, g_strdup ("sleep infinity")); + g_ptr_array_add (args, g_strdup ("exec sleep infinity")); g_ptr_array_add (args, NULL); launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE); proc = g_subprocess_launcher_spawnv (launcher, (const gchar **) args->pdata, &local_error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/tests/gsubprocess.c new/glib-2.78.3/gio/tests/gsubprocess.c --- old/glib-2.78.1/gio/tests/gsubprocess.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/tests/gsubprocess.c 2023-12-06 19:03:55.000000000 +0100 @@ -2006,7 +2006,7 @@ g_assert_no_errno (waitpid (main_child, &wstatus, 0)); g_assert_no_errno (ptrace (PTRACE_SETOPTIONS, main_child, NULL, (PTRACE_O_TRACEFORK | -#ifdef PTRACE_O_EXITKILL +#ifdef HAVE_PTRACE_O_EXITKILL PTRACE_O_EXITKILL | #endif PTRACE_O_TRACEVFORK | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmime.c new/glib-2.78.3/gio/xdgmime/xdgmime.c --- old/glib-2.78.1/gio/xdgmime/xdgmime.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmime.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003,2004 Red Hat, Inc. * Copyright (C) 2003,2004 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H @@ -143,7 +127,7 @@ static int xdg_mime_init_from_directory (const char *directory, - void *user_data) + void *user_data __attribute__((__unused__))) { char *file_name; struct stat st; @@ -835,13 +819,16 @@ int _xdg_mime_mime_type_subclass (const char *mime, - const char *base) + const char *base, + const char ***seen) { - const char *umime, *ubase; - const char **parents; + const char *umime, *ubase, *parent; + const char **parents, **first_seen = NULL, **new_seen; + + int i, ret = 0; if (_caches) - return _xdg_mime_cache_mime_type_subclass (mime, base); + return _xdg_mime_cache_mime_type_subclass (mime, base, NULL); umime = _xdg_mime_unalias_mime_type (mime); ubase = _xdg_mime_unalias_mime_type (base); @@ -864,15 +851,42 @@ if (strcmp (ubase, "application/octet-stream") == 0 && strncmp (umime, "inode/", 6) != 0) return 1; - + + if (!seen) + { + first_seen = calloc (1, sizeof (char *)); + seen = &first_seen; + } + parents = _xdg_mime_parent_list_lookup (parent_list, umime); for (; parents && *parents; parents++) { - if (_xdg_mime_mime_type_subclass (*parents, ubase)) - return 1; + parent = *parents; + + /* Detect and avoid buggy circular relationships */ + for (i = 0; (*seen)[i] != NULL; i++) + if (parent == (*seen)[i]) + goto next_parent; + new_seen = realloc (*seen, (i + 2) * sizeof (char *)); + if (!new_seen) + goto done; + new_seen[i] = parent; + new_seen[i + 1] = NULL; + *seen = new_seen; + + if (_xdg_mime_mime_type_subclass (parent, ubase, seen)) + { + ret = 1; + goto done; + } + + next_parent: + continue; } - return 0; +done: + free (first_seen); + return ret; } int @@ -881,7 +895,7 @@ { xdg_mime_init (); - return _xdg_mime_mime_type_subclass (mime, base); + return _xdg_mime_mime_type_subclass (mime, base, NULL); } char ** @@ -891,6 +905,8 @@ char **result; int i, n; + xdg_mime_init (); + if (_caches) return _xdg_mime_cache_list_mime_parents (mime); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmime.h new/glib-2.78.3/gio/xdgmime/xdgmime.h --- old/glib-2.78.1/gio/xdgmime/xdgmime.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmime.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ @@ -125,7 +109,8 @@ int _xdg_mime_mime_type_equal (const char *mime_a, const char *mime_b); int _xdg_mime_mime_type_subclass (const char *mime, - const char *base); + const char *base, + const char ***seen); const char *_xdg_mime_unalias_mime_type (const char *mime); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimealias.c new/glib-2.78.3/gio/xdgmime/xdgmimealias.c --- old/glib-2.78.1/gio/xdgmime/xdgmimealias.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimealias.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 2004 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimealias.h new/glib-2.78.3/gio/xdgmime/xdgmimealias.h --- old/glib-2.78.1/gio/xdgmime/xdgmimealias.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimealias.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 200 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_ALIAS_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimecache.c new/glib-2.78.3/gio/xdgmime/xdgmimecache.c --- old/glib-2.78.1/gio/xdgmime/xdgmimecache.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimecache.c 2023-12-06 19:03:55.000000000 +0100 @@ -5,23 +5,7 @@ * * Copyright (C) 2005 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H @@ -92,6 +76,13 @@ #define GET_UINT16(cache,offset) (ntohs(*(xdg_uint16_t*)((cache) + (offset)))) #define GET_UINT32(cache,offset) (ntohl(*(xdg_uint32_t*)((cache) + (offset)))) +// Validates that it is safe to call GET_UINT32() at +// cache->buffer[offset + (n * record_size)]. Ensures that offset is aligned to +// a 4-byte boundary, and that offset+(n*record_size) does not overflow. +// `record_size` values are known constants and never 0. +#define OUT_OF_BOUNDS(offset,n,record_size,max) \ + (((offset) & 0x3) || (offset) > (max) || (n) > ((max) - (offset)) / (record_size)) + XdgMimeCache * _xdg_mime_cache_ref (XdgMimeCache *cache) { @@ -132,7 +123,8 @@ if (fd < 0) return NULL; - if (fstat (fd, &st) < 0 || st.st_size < 4) + // A valid cache must be at least 40 bytes for the header. + if (fstat (fd, &st) < 0 || st.st_size < 40) goto done; buffer = (char *) mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); @@ -225,6 +217,8 @@ { xdg_uint32_t n_children = GET_UINT32 (cache->buffer, offset + 24); xdg_uint32_t child_offset = GET_UINT32 (cache->buffer, offset + 28); + if (OUT_OF_BOUNDS (child_offset, n_children, 32, cache->size)) + return FALSE; xdg_uint32_t i; @@ -255,6 +249,8 @@ xdg_uint32_t mimetype_offset = GET_UINT32 (cache->buffer, offset + 4); xdg_uint32_t n_matchlets = GET_UINT32 (cache->buffer, offset + 8); xdg_uint32_t matchlet_offset = GET_UINT32 (cache->buffer, offset + 12); + if (OUT_OF_BOUNDS (matchlet_offset, n_matchlets, 32, cache->size)) + return NULL; xdg_uint32_t i; @@ -287,8 +283,13 @@ *prio = 0; list_offset = GET_UINT32 (cache->buffer, 24); + if (OUT_OF_BOUNDS (list_offset, 1, 12, cache->size)) + return NULL; + n_entries = GET_UINT32 (cache->buffer, list_offset); offset = GET_UINT32 (cache->buffer, list_offset + 8); + if (OUT_OF_BOUNDS (offset, n_entries, 16, cache->size)) + return NULL; for (j = 0; j < n_entries; j++) { @@ -320,7 +321,12 @@ continue; list_offset = GET_UINT32 (cache->buffer, 4); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size)) + continue; min = 0; max = n_entries - 1; @@ -361,6 +367,8 @@ const char *ptr; int i, min, max, mid, cmp; + assert (n_mime_types > 0); + for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; @@ -372,7 +380,12 @@ continue; list_offset = GET_UINT32 (cache->buffer, 12); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 12, cache->size)) + continue; min = 0; max = n_entries - 1; @@ -433,7 +446,12 @@ continue; list_offset = GET_UINT32 (cache->buffer, 20); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 12, cache->size)) + continue; for (j = 0; j < n_entries && n < n_mime_types; j++) { @@ -504,6 +522,8 @@ n = 0; n_children = GET_UINT32 (cache->buffer, offset + 12 * mid + 4); child_offset = GET_UINT32 (cache->buffer, offset + 12 * mid + 8); + if (OUT_OF_BOUNDS (child_offset, n_children, 12, cache->size)) + continue; if (len > 0) { @@ -565,8 +585,13 @@ continue; list_offset = GET_UINT32 (cache->buffer, 16); + if (OUT_OF_BOUNDS (list_offset, 1, 8, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); offset = GET_UINT32 (cache->buffer, list_offset + 4); + if (OUT_OF_BOUNDS (offset, n_entries, 12, cache->size)) + continue; n += cache_glob_node_lookup_suffix (cache, n_entries, offset, @@ -707,6 +732,9 @@ continue; offset = GET_UINT32 (cache->buffer, 24); + if (OUT_OF_BOUNDS (offset, 1, 8, cache->size)) + continue; + max_extent = MAX (max_extent, GET_UINT32 (cache->buffer, offset + 4)); } @@ -751,8 +779,8 @@ /* Pick glob-result R where mime_type inherits from R */ for (n = 0; n < n_mime_types; n++) { - if (mime_types[n] && _xdg_mime_cache_mime_type_subclass(mime_types[n], mime_type)) - return mime_types[n]; + if (mime_types[n] && _xdg_mime_cache_mime_type_subclass (mime_types[n], mime_type, NULL)) + return mime_types[n]; } if (n == 0) { @@ -901,13 +929,15 @@ int _xdg_mime_cache_mime_type_subclass (const char *mime, - const char *base) + const char *base, + const char ***seen) { - const char *umime, *ubase; + const char *umime, *ubase, *parent; + const char **first_seen = NULL, **new_seen; xdg_uint32_t j; - int i, min, max, med, cmp; - + int i, k, min, max, med, cmp, ret = 0; + umime = _xdg_mime_cache_unalias_mime_type (mime); ubase = _xdg_mime_cache_unalias_mime_type (base); @@ -932,7 +962,13 @@ if (strcmp (ubase, "application/octet-stream") == 0 && strncmp (umime, "inode/", 6) != 0) return 1; - + + if (!seen) + { + first_seen = calloc (1, sizeof (char *)); + seen = &first_seen; + } + for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; @@ -944,7 +980,12 @@ continue; list_offset = GET_UINT32 (cache->buffer, 8); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size)) + continue; min = 0; max = n_entries - 1; @@ -966,10 +1007,27 @@ for (j = 0; j < n_parents; j++) { parent_offset = GET_UINT32 (cache->buffer, offset + 4 + 4 * j); - if (strcmp (cache->buffer + parent_offset, mime) != 0 && - strcmp (cache->buffer + parent_offset, umime) != 0 && - _xdg_mime_cache_mime_type_subclass (cache->buffer + parent_offset, ubase)) - return 1; + parent = cache->buffer + parent_offset; + + /* Detect and avoid buggy circular relationships */ + for (k = 0; (*seen)[k] != NULL; k++) + if (parent == (*seen)[k]) + goto next_parent; + new_seen = realloc (*seen, (k + 2) * sizeof (char *)); + if (!new_seen) + goto done; + new_seen[k] = parent; + new_seen[k + 1] = NULL; + *seen = new_seen; + + if (_xdg_mime_cache_mime_type_subclass (parent, ubase, seen)) + { + ret = 1; + goto done; + } + + next_parent: + continue; } break; @@ -977,7 +1035,9 @@ } } - return 0; +done: + free (first_seen); + return ret; } const char * @@ -1014,7 +1074,12 @@ continue; list_offset = GET_UINT32 (cache->buffer, 8); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size)) + continue; for (j = 0; j < n_entries; j++) { @@ -1056,7 +1121,7 @@ } static const char * -cache_lookup_icon (const char *mime, int header) +cache_lookup_icon (const char *mime, size_t header) { const char *ptr; int i, min, max, mid, cmp; @@ -1071,8 +1136,16 @@ if (cache->buffer == NULL) continue; + if (OUT_OF_BOUNDS (header, 1, 4, cache->size)) + continue; + list_offset = GET_UINT32 (cache->buffer, header); + if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size)) + continue; + n_entries = GET_UINT32 (cache->buffer, list_offset); + if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size)) + continue; min = 0; max = n_entries - 1; @@ -1127,6 +1200,9 @@ mime_offset = GET_UINT32 (cache->buffer, offset + 4); n_children = GET_UINT32 (cache->buffer, offset + 8); child_offset = GET_UINT32 (cache->buffer, offset + 12); + if (OUT_OF_BOUNDS (child_offset, n_children, 20, cache->size)) + return; + for (i = 0; i < depth; i++) printf (" "); printf ("%c", character); @@ -1151,12 +1227,18 @@ xdg_uint32_t n_entries; xdg_uint32_t offset; - if (cache->buffer == NULL) - continue; + if (cache->buffer == NULL) + continue; list_offset = GET_UINT32 (cache->buffer, 16); + if (OUT_OF_BOUNDS (list_offset, 1, 8, cache->size)) + return; + n_entries = GET_UINT32 (cache->buffer, list_offset); offset = GET_UINT32 (cache->buffer, list_offset + 4); + if (OUT_OF_BOUNDS (offset, n_entries, 20, cache->size)) + return; + for (j = 0; j < n_entries; j++) dump_glob_node (cache, offset + 20 * j, 0); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimecache.h new/glib-2.78.3/gio/xdgmime/xdgmimecache.h --- old/glib-2.78.1/gio/xdgmime/xdgmimecache.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimecache.h 2023-12-06 19:03:55.000000000 +0100 @@ -5,23 +5,7 @@ * * Copyright (C) 2005 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_CACHE_H__ @@ -70,7 +54,8 @@ int _xdg_mime_cache_media_type_equal (const char *mime_a, const char *mime_b); int _xdg_mime_cache_mime_type_subclass (const char *mime_a, - const char *mime_b); + const char *mime_b, + const char ***seen); char **_xdg_mime_cache_list_mime_parents (const char *mime); const char *_xdg_mime_cache_unalias_mime_type (const char *mime); int _xdg_mime_cache_get_max_buffer_extents (void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeglob.c new/glib-2.78.3/gio/xdgmime/xdgmimeglob.c --- old/glib-2.78.1/gio/xdgmime/xdgmimeglob.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeglob.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeglob.h new/glib-2.78.3/gio/xdgmime/xdgmimeglob.h --- old/glib-2.78.1/gio/xdgmime/xdgmimeglob.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeglob.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_GLOB_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeicon.c new/glib-2.78.3/gio/xdgmime/xdgmimeicon.c --- old/glib-2.78.1/gio/xdgmime/xdgmimeicon.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeicon.c 2023-12-06 19:03:55.000000000 +0100 @@ -5,23 +5,7 @@ * * Copyright (C) 2008 Red Hat, Inc. * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeicon.h new/glib-2.78.3/gio/xdgmime/xdgmimeicon.h --- old/glib-2.78.1/gio/xdgmime/xdgmimeicon.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeicon.h 2023-12-06 19:03:55.000000000 +0100 @@ -5,23 +5,7 @@ * * Copyright (C) 2008 Red Hat, Inc. * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_ICON_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeint.c new/glib-2.78.3/gio/xdgmime/xdgmimeint.c --- old/glib-2.78.1/gio/xdgmime/xdgmimeint.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeint.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H @@ -131,7 +115,7 @@ } int -_xdg_utf8_validate (const char *source) +_xdg_utf8_validate (const char *source __attribute__((unused))) { /* FIXME: actually write */ return TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeint.h new/glib-2.78.3/gio/xdgmime/xdgmimeint.h --- old/glib-2.78.1/gio/xdgmime/xdgmimeint.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeint.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_INT_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimemagic.c new/glib-2.78.3/gio/xdgmime/xdgmimemagic.c --- old/glib-2.78.1/gio/xdgmime/xdgmimemagic.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimemagic.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H @@ -798,6 +782,11 @@ break; case XDG_MIME_MAGIC_ERROR: state = _xdg_mime_magic_parse_error (magic_file); + + /* After a parse error we can only be at EOF or reset to starting a + * new section. */ + assert (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_SECTION); + break; case XDG_MIME_MAGIC_EOF: default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimemagic.h new/glib-2.78.3/gio/xdgmime/xdgmimemagic.h --- old/glib-2.78.1/gio/xdgmime/xdgmimemagic.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimemagic.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford <j...@alum.mit.edu> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_MAGIC_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeparent.c new/glib-2.78.3/gio/xdgmime/xdgmimeparent.c --- old/glib-2.78.1/gio/xdgmime/xdgmimeparent.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeparent.c 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 2004 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifdef HAVE_CONFIG_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gio/xdgmime/xdgmimeparent.h new/glib-2.78.3/gio/xdgmime/xdgmimeparent.h --- old/glib-2.78.1/gio/xdgmime/xdgmimeparent.h 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gio/xdgmime/xdgmimeparent.h 2023-12-06 19:03:55.000000000 +0100 @@ -6,23 +6,7 @@ * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 200 Matthias Clasen <mcla...@redhat.com> * - * Licensed under the Academic Free License version 2.0 - * Or under the following terms: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0 */ #ifndef __XDG_MIME_PARENT_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/glib/gquark.c new/glib-2.78.3/glib/gquark.c --- old/glib-2.78.1/glib/gquark.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/glib/gquark.c 2023-12-06 19:03:55.000000000 +0100 @@ -43,6 +43,7 @@ #include "gtestutils.h" #include "glib_trace.h" #include "glib-init.h" +#include "glib-private.h" #define QUARK_BLOCK_SIZE 2048 #define QUARK_STRING_BLOCK_SIZE (4096 - sizeof (gsize)) @@ -301,6 +302,7 @@ * us to do lockless lookup of the arrays, and there shouldn't be that * many quarks in an app */ + g_ignore_leak (g_atomic_pointer_get (&quarks)); g_atomic_pointer_set (&quarks, quarks_new); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/glib/gunicollate.c new/glib-2.78.3/glib/gunicollate.c --- old/glib-2.78.1/glib/gunicollate.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/glib/gunicollate.c 2023-12-06 19:03:55.000000000 +0100 @@ -401,6 +401,8 @@ str_norm = _g_utf8_normalize_wc (str, len, G_NORMALIZE_ALL_COMPOSE); + g_return_val_if_fail (str_norm != NULL, NULL); + xfrm_len = wcsxfrm (NULL, (wchar_t *)str_norm, 0); result_wc = g_new (wchar_t, xfrm_len + 1); wcsxfrm (result_wc, (wchar_t *)str_norm, xfrm_len + 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/glib/tests/unicode-normalize.c new/glib-2.78.3/glib/tests/unicode-normalize.c --- old/glib-2.78.1/glib/tests/unicode-normalize.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/glib/tests/unicode-normalize.c 2023-12-06 19:03:55.000000000 +0100 @@ -182,6 +182,19 @@ } } +static void +test_unicode_normalize_bad_length (void) +{ + const char *input = "fórmula, vol. 2 (deluxe edition)"; + gsize len = 2; + char *output; + + output = g_utf8_normalize (input, len, G_NORMALIZE_ALL_COMPOSE); + g_assert_null (output); + + g_free (output); +} + int main (int argc, char **argv) { @@ -190,6 +203,7 @@ g_test_add_func ("/unicode/normalize", test_unicode_normalize); g_test_add_func ("/unicode/normalize-invalid", test_unicode_normalize_invalid); + g_test_add_func ("/unicode/normalize/bad-length", test_unicode_normalize_bad_length); return g_test_run (); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gobject/gsignalgroup.c new/glib-2.78.3/gobject/gsignalgroup.c --- old/glib-2.78.1/gobject/gsignalgroup.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gobject/gsignalgroup.c 2023-12-06 19:03:55.000000000 +0100 @@ -718,10 +718,15 @@ g_return_val_if_fail (G_IS_SIGNAL_GROUP (self), FALSE); g_return_val_if_fail (detailed_signal != NULL, FALSE); - g_return_val_if_fail (g_signal_parse_name (detailed_signal, self->target_type, - &signal_id, &signal_detail, TRUE) != 0, FALSE); g_return_val_if_fail (closure != NULL, FALSE); + if (!g_signal_parse_name (detailed_signal, self->target_type, + &signal_id, &signal_detail, TRUE)) + { + g_critical ("Invalid signal name â%sâ", detailed_signal); + return FALSE; + } + g_rec_mutex_lock (&self->mutex); if (self->has_bound_at_least_once) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/gobject/tests/signalgroup.c new/glib-2.78.3/gobject/tests/signalgroup.c --- old/glib-2.78.1/gobject/tests/signalgroup.c 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/gobject/tests/signalgroup.c 2023-12-06 19:03:55.000000000 +0100 @@ -305,7 +305,7 @@ /* Invalid Signal Name */ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, - "*g_signal_parse_name*"); + "*Invalid signal name âdoes-not-existâ*"); group = g_signal_group_new (signal_target_get_type ()); g_signal_group_connect (group, "does-not-exist", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/meson.build new/glib-2.78.3/meson.build --- old/glib-2.78.1/meson.build 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/meson.build 2023-12-06 19:03:55.000000000 +0100 @@ -1,5 +1,5 @@ project('glib', 'c', - version : '2.78.1', + version : '2.78.3', # NOTE: See the policy in docs/meson-version.md before changing the Meson dependency meson_version : '>= 0.60.0', default_options : [ @@ -2436,6 +2436,10 @@ enable_dtrace = true endif +if cc.has_header_symbol('sys/ptrace.h', 'PTRACE_O_EXITKILL') + glib_conf.set('HAVE_PTRACE_O_EXITKILL', 1) +endif + # systemtap want_systemtap = get_option('systemtap') enable_systemtap = false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.78.1/po/uk.po new/glib-2.78.3/po/uk.po --- old/glib-2.78.1/po/uk.po 2023-10-25 13:33:59.000000000 +0200 +++ new/glib-2.78.3/po/uk.po 2023-12-06 19:03:55.000000000 +0100 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: glib\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n" -"POT-Creation-Date: 2023-08-31 14:09+0000\n" +"POT-Creation-Date: 2023-10-22 23:29+0000\n" "PO-Revision-Date: 2023-08-31 22:09+0300\n" "Last-Translator: Yuri Chornoivan <yurc...@ukr.net>\n" "Language-Team: Ukrainian <trans...@lists.fedoraproject.org>\n" @@ -18,8 +18,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 20.12.0\n" #: gio/gappinfo.c:339 @@ -318,8 +318,7 @@ #: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311 msgid "Incomplete multibyte sequence in input" -msgstr "" -"ÐепÑавилÑна багаÑобайÑова поÑлÑдовнÑÑÑÑ Ñ Ð¿ÐµÑеÑвоÑÑÐ²Ð°Ð½Ð¸Ñ Ð²Ñ ÑÐ´Ð½Ð¸Ñ Ð´Ð°Ð½Ð¸Ñ " +msgstr "ÐепÑавилÑна багаÑобайÑова поÑлÑдовнÑÑÑÑ Ñ Ð¿ÐµÑеÑвоÑÑÐ²Ð°Ð½Ð¸Ñ Ð²Ñ ÑÐ´Ð½Ð¸Ñ Ð´Ð°Ð½Ð¸Ñ " #: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326 msgid "Not enough space in destination" @@ -480,8 +479,7 @@ #: gio/gdbusaddress.c:653 #, c-format -msgid "" -"Error in address â%sâ â the noncefile attribute is missing or malformed" +msgid "Error in address â%sâ â the noncefile attribute is missing or malformed" msgstr "" "Ðомилка в адÑеÑÑ Â«%s» â аÑÑибÑÑ Ð½Ðµ вказано аÑÑибÑÑ noncefile або помилкове " "ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð°ÑÑибÑÑа" @@ -519,8 +517,7 @@ #: gio/gdbusaddress.c:1101 #, c-format msgid "Cannot spawn a message bus when AT_SECURE is set" -msgstr "" -"Ðеможливо поÑодиÑи пÑоÑÐµÑ Ñини повÑдомленÑ, ÑкÑо вÑÑановлено AT_SECURE" +msgstr "Ðеможливо поÑодиÑи пÑоÑÐµÑ Ñини повÑдомленÑ, ÑкÑо вÑÑановлено AT_SECURE" #: gio/gdbusaddress.c:1108 msgid "Cannot spawn a message bus without a machine-id: " @@ -601,8 +598,7 @@ #, c-format msgid "" "Permissions on directory â%sâ are malformed. Expected mode 0700, got 0%o" -msgstr "" -"ÐÐ¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ñ Ð¿Ñава на каÑалог «%s». ÐÑÑкÑваний Ñежим â 0700, оÑÑимано 0%o" +msgstr "ÐÐ¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ñ Ð¿Ñава на каÑалог «%s». ÐÑÑкÑваний Ñежим â 0700, оÑÑимано 0%o" #: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366 #, c-format @@ -614,8 +610,8 @@ #: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089 #: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970 #: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654 -#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090 -#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453 +#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:8996 gio/gfile.c:9086 +#: gio/gfile.c:9170 gio/win32/gwinhttpfile.c:453 msgid "Operation not supported" msgstr "ÐпеÑаÑÑÑ Ð½Ðµ пÑдÑÑимÑÑÑÑÑÑ" @@ -785,34 +781,30 @@ msgstr "ÐÐÐÐ ÐÐÐÐЬÐÐÐ Ñип" #: gio/gdbusmessage.c:1324 -#| msgid "METHOD_CALL message: PATH or MEMBER header field is missing" msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid" msgstr "" -"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ METHOD_CALL: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° PATH або MEMBER або Ñе поле Ñ" -" некоÑекÑним" +"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ METHOD_CALL: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° PATH або MEMBER або Ñе поле Ñ " +"некоÑекÑним" #: gio/gdbusmessage.c:1340 -#| msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing" msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid" msgstr "" -"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ METHOD_RETURN: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° REPLY_SERIAL або Ñе поле Ñ" -" некоÑекÑним" +"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ METHOD_RETURN: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° REPLY_SERIAL або Ñе поле Ñ " +"некоÑекÑним" #: gio/gdbusmessage.c:1360 -#| msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing" msgid "" "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid" msgstr "" -"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ERROR: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° REPLY_SERIAL або ERROR_NAME або Ñе" -" поле Ñ Ð½ÐµÐºÐ¾ÑекÑним" +"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ERROR: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° REPLY_SERIAL або ERROR_NAME або Ñе " +"поле Ñ Ð½ÐµÐºÐ¾ÑекÑним" #: gio/gdbusmessage.c:1384 -#| msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing" msgid "" "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid" msgstr "" -"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ SIGNAL: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° PATH, INTERFACE або MEMBER або Ñе" -" поле Ñ Ð½ÐµÐºÐ¾ÑекÑним" +"ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ SIGNAL: Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° PATH, INTERFACE або MEMBER або Ñе " +"поле Ñ Ð½ÐµÐºÐ¾ÑекÑним" #: gio/gdbusmessage.c:1392 msgid "" @@ -1067,8 +1059,7 @@ #: gio/gdbusserver.c:1145 #, c-format msgid "Cannot listen on unsupported transport â%sâ" -msgstr "" -"Ðеможливо оÑÑкÑваÑи на Ð´Ð°Ð½Ñ Ð½Ð° ÐºÐ°Ð½Ð°Ð»Ñ Ð¿ÐµÑÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Â«%s», Ñкого не ÑÑнÑÑ" +msgstr "Ðеможливо оÑÑкÑваÑи на Ð´Ð°Ð½Ñ Ð½Ð° ÐºÐ°Ð½Ð°Ð»Ñ Ð¿ÐµÑÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Â«%s», Ñкого не ÑÑнÑÑ" #: gio/gdbus-tool.c:113 #, c-format @@ -1150,8 +1141,7 @@ #, c-format msgid "" "Warning: According to introspection data, interface â%sâ does not exist\n" -msgstr "" -"ÐопеÑедженнÑ: згÑдно з даними ÑнÑÑоÑпекÑÑÑ, ÑнÑеÑÑейÑÑ Â«%s» не ÑÑнÑÑ\n" +msgstr "ÐопеÑедженнÑ: згÑдно з даними ÑнÑÑоÑпекÑÑÑ, ÑнÑеÑÑейÑÑ Â«%s» не ÑÑнÑÑ\n" #: gio/gdbus-tool.c:533 #, c-format @@ -1520,7 +1510,7 @@ msgid "Invalid symlink value given" msgstr "ÐепÑавилÑне знаÑÐµÐ½Ð½Ñ ÑимволÑного поÑиланнÑ" -#: gio/gfile.c:4324 glib/gfileutils.c:2392 +#: gio/gfile.c:4324 glib/gfileutils.c:2424 msgid "Symbolic links not supported" msgstr "СимволÑÑÐ½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ðµ пÑдÑÑимÑÑÑÑÑÑ" @@ -1533,16 +1523,16 @@ msgid "File names cannot contain â%câ" msgstr "Ðазви ÑайлÑв не можÑÑÑ Ð¼ÑÑÑиÑи ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Â«%c»" -#: gio/gfile.c:7155 gio/gfile.c:7281 +#: gio/gfile.c:7151 gio/gfile.c:7277 #, c-format msgid "Failed to create a temporary directory for template â%sâ: %s" msgstr "Ðе вдалоÑÑ ÑÑвоÑиÑи ÑимÑаÑовий каÑалог Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Â«%s»: %s" -#: gio/gfile.c:7599 gio/gvolume.c:366 +#: gio/gfile.c:7595 gio/gvolume.c:366 msgid "volume doesnât implement mount" msgstr "Ð´Ð»Ñ ÑÐ¾Ð¼Ñ Ð½Ðµ ÑеалÑзовано опеÑаÑÑÑ Ð¼Ð¾Ð½ÑÑваннÑ" -#: gio/gfile.c:7713 gio/gfile.c:7790 +#: gio/gfile.c:7709 gio/gfile.c:7786 msgid "No application is registered as handling this file" msgstr "ÐÑогÑам Ð´Ð»Ñ Ð¾Ð±Ñобки ÑÐ°ÐºÐ¸Ñ ÑайлÑв не заÑеÑÑÑÑовано" @@ -2755,8 +2745,7 @@ #: gio/glib-compile-schemas.c:607 #, c-format msgid "alias target â%sâ is not in enumerated type" -msgstr "" -"пÑизнаÑÐµÐ½Ð½Ñ Ð°Ð»ÑÑеÑнаÑÐ¸Ð²Ð½Ð¾Ñ Ð½Ð°Ð·Ð²Ð¸ «%s» не належиÑÑ Ð´Ð¾ нÑмеÑованого ÑипÑ" +msgstr "пÑизнаÑÐµÐ½Ð½Ñ Ð°Ð»ÑÑеÑнаÑÐ¸Ð²Ð½Ð¾Ñ Ð½Ð°Ð·Ð²Ð¸ «%s» не належиÑÑ Ð´Ð¾ нÑмеÑованого ÑипÑ" #: gio/glib-compile-schemas.c:608 #, c-format @@ -2789,8 +2778,7 @@ #: gio/glib-compile-schemas.c:828 #, c-format msgid "Invalid name â%sâ: two successive hyphens (â--â) are not permitted" -msgstr "" -"ÐекоÑекÑна назва «%s»: не можна вказÑваÑи два деÑÑÑи одноÑаÑно («--»)." +msgstr "ÐекоÑекÑна назва «%s»: не можна вказÑваÑи два деÑÑÑи одноÑаÑно («--»)." #: gio/glib-compile-schemas.c:837 #, c-format @@ -3342,25 +3330,25 @@ msgid "Error setting modification or access time for file â%sâ: %lu" msgstr "Ðомилка пÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑаÑÑ Ð·Ð¼Ñни або доÑÑÑÐ¿Ñ Ð´Ð»Ñ Ñайла «%s»: %lu" -#: gio/glocalfileinfo.c:2950 +#: gio/glocalfileinfo.c:2970 #, c-format msgid "Error setting modification or access time: %s" msgstr "Ðомилка пÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑаÑÑ Ð·Ð¼Ñни або доÑÑÑпÑ: %s" -#: gio/glocalfileinfo.c:2973 +#: gio/glocalfileinfo.c:2993 msgid "SELinux context must be non-NULL" msgstr "ÐонÑекÑÑ SELinux не може знаÑÐµÐ½Ð½Ñ NULL" -#: gio/glocalfileinfo.c:2980 +#: gio/glocalfileinfo.c:3000 msgid "SELinux is not enabled on this system" msgstr "SELinux не ÑвÑмкнено Ñ ÑÑй ÑиÑÑемÑ" -#: gio/glocalfileinfo.c:2990 +#: gio/glocalfileinfo.c:3010 #, c-format msgid "Error setting SELinux context: %s" msgstr "Ðомилка пÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½ÑекÑÑÑ SELinux: %s" -#: gio/glocalfileinfo.c:3087 +#: gio/glocalfileinfo.c:3107 #, c-format msgid "Setting attribute %s not supported" msgstr "ÐÑдÑÑимки вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°ÑÑибÑÑа %s не пеÑедбаÑено" @@ -3988,7 +3976,7 @@ msgstr "Ð¡Ð¾ÐºÐµÑ Ð²Ð¶Ðµ закÑиÑий" #: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527 -#: gio/gthreadedresolver.c:1438 +#: gio/gthreadedresolver.c:1445 msgid "Socket I/O timed out" msgstr "ÐеÑевиÑено ÑÐ°Ñ Ð¾ÑÑкÑÐ²Ð°Ð½Ð½Ñ Ð²Ð²Ð¾Ð´Ñ-Ð²Ð¸Ð²Ð¾Ð´Ñ ÑокеÑа" @@ -5117,7 +5105,7 @@ msgid "Failed to read from file â%sâ: %s" msgstr "Ðомилка зÑиÑÑÐ²Ð°Ð½Ð½Ñ Ð· Ñайла «%s»: %s" -#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472 +#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1502 #, c-format msgid "Failed to open file â%sâ: %s" msgstr "Ðе вдалоÑÑ Ð²ÑдкÑиÑи Ñайл «%s»: %s" @@ -5137,37 +5125,37 @@ msgid "Failed to rename file â%sâ to â%sâ: g_rename() failed: %s" msgstr "Ðомилка пеÑейменÑÐ²Ð°Ð½Ð½Ñ Ñайла «%s» на «%s»: помилка g_rename(): %s" -#: glib/gfileutils.c:1179 +#: glib/gfileutils.c:1209 #, c-format msgid "Failed to write file â%sâ: write() failed: %s" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸ÑаÑи Ñайл «%s»: збÑй Ñ ÑÑнкÑÑÑ write(): %s" -#: glib/gfileutils.c:1200 +#: glib/gfileutils.c:1230 #, c-format msgid "Failed to write file â%sâ: fsync() failed: %s" msgstr "Ðомилка запиÑÑ Ñ Ñайл «%s»: помилка fsync(): %s" -#: glib/gfileutils.c:1361 glib/gfileutils.c:1776 +#: glib/gfileutils.c:1391 glib/gfileutils.c:1808 #, c-format msgid "Failed to create file â%sâ: %s" msgstr "Ðомилка ÑÑвоÑÐµÐ½Ð½Ñ Ñайла «%s»: %s" -#: glib/gfileutils.c:1406 +#: glib/gfileutils.c:1436 #, c-format msgid "Existing file â%sâ could not be removed: g_unlink() failed: %s" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð»ÑÑиÑи наÑвний Ñайл «%s»: помилка g_unlink(): %s" -#: glib/gfileutils.c:1741 +#: glib/gfileutils.c:1773 #, c-format msgid "Template â%sâ invalid, should not contain a â%sâ" msgstr "Шаблон «%s» непÑавилÑний, бо не може мÑÑÑиÑи «%s»" -#: glib/gfileutils.c:1754 +#: glib/gfileutils.c:1786 #, c-format msgid "Template â%sâ doesnât contain XXXXXX" msgstr "Шаблон «%s» не мÑÑÑиÑÑ XXXXXX" -#: glib/gfileutils.c:2348 glib/gfileutils.c:2377 +#: glib/gfileutils.c:2380 glib/gfileutils.c:2409 #, c-format msgid "Failed to read the symbolic link â%sâ: %s" msgstr "Ðомилка ÑиÑÐ°Ð½Ð½Ñ ÑимволÑÑного поÑÐ¸Ð»Ð°Ð½Ð½Ñ Â«%s»: %s" @@ -5272,31 +5260,31 @@ msgid "Key â%sâ in group â%sâ has value â%sâ where %s was expected" msgstr "ÐнаÑÐµÐ½Ð½Ñ ÐºÐ»ÑÑа «%s» Ñ Ð³ÑÑÐ¿Ñ Â«%s» доÑÑвнÑÑ Â«%s», але оÑÑкÑвалоÑÑ Â«%s»" -#: glib/gkeyfile.c:4356 +#: glib/gkeyfile.c:4357 msgid "Key file contains escape character at end of line" msgstr "ÐлÑÑовий Ñайл мÑÑÑиÑÑ escape-Ñимвол напÑикÑнÑÑ ÑÑдка" -#: glib/gkeyfile.c:4378 +#: glib/gkeyfile.c:4394 #, c-format msgid "Key file contains invalid escape sequence â%sâ" msgstr "Файл клÑÑа мÑÑÑиÑÑ Ð½ÐµÐ¿ÑавилÑÐ½Ñ Ð¿Ð¾ÑлÑдовнÑÑÑÑ ÐµÐºÑанÑÐ²Ð°Ð½Ð½Ñ Â«%s»" -#: glib/gkeyfile.c:4530 +#: glib/gkeyfile.c:4545 #, c-format msgid "Value â%sâ cannot be interpreted as a number." msgstr "Ðе вдалоÑÑ ÑозÑбÑаÑи знаÑÐµÐ½Ð½Ñ Â«%s» Ñк ÑиÑло." -#: glib/gkeyfile.c:4544 +#: glib/gkeyfile.c:4559 #, c-format msgid "Integer value â%sâ out of range" msgstr "ЧиÑлове ÑÑле знаÑÐµÐ½Ð½Ñ Â«%s» поза межами дÑапазонÑ" -#: glib/gkeyfile.c:4577 +#: glib/gkeyfile.c:4592 #, c-format msgid "Value â%sâ cannot be interpreted as a float number." msgstr "ÐнаÑÐµÐ½Ð½Ñ Â«%s» не вдалоÑÑ Ð¿ÐµÑеÑвоÑиÑи на ÑиÑло з ÑÑÑ Ð¾Ð¼Ð¾Ñ ÐºÐ¾Ð¼Ð¾Ñ." -#: glib/gkeyfile.c:4616 +#: glib/gkeyfile.c:4631 #, c-format msgid "Value â%sâ cannot be interpreted as a boolean." msgstr "Ðе вдалоÑÑ Ð¾Ð±ÑобиÑи знаÑÐµÐ½Ð½Ñ Â«%s» Ñк логÑÑне знаÑеннÑ." @@ -5474,8 +5462,7 @@ #: glib/gmarkup.c:1813 msgid "Document ended unexpectedly just after an open angle bracket â<â" -msgstr "" -"ÐокÑÐ¼ÐµÐ½Ñ ÑапÑово закÑнÑивÑÑ Ð²ÑдÑÐ°Ð·Ñ Ð¿ÑÑÐ»Ñ Ð¿Ð¾ÑаÑÐºÐ¾Ð²Ð¾Ñ ÐºÑÑÐ¾Ð²Ð¾Ñ Ð´Ñжки «<»" +msgstr "ÐокÑÐ¼ÐµÐ½Ñ ÑапÑово закÑнÑивÑÑ Ð²ÑдÑÐ°Ð·Ñ Ð¿ÑÑÐ»Ñ Ð¿Ð¾ÑаÑÐºÐ¾Ð²Ð¾Ñ ÐºÑÑÐ¾Ð²Ð¾Ñ Ð´Ñжки «<»" #: glib/gmarkup.c:1821 glib/gmarkup.c:1866 #, c-format @@ -5531,8 +5518,7 @@ #: glib/gmarkup.c:1886 msgid "Document ended unexpectedly inside a comment or processing instruction" -msgstr "" -"ÐокÑÐ¼ÐµÐ½Ñ ÑапÑово закÑнÑивÑÑ Ñ ÑеÑÐµÐ´Ð¸Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½ÑаÑÑ Ñи ÑнÑÑÑÑкÑÑÑ Ð¾Ð±Ñобки" +msgstr "ÐокÑÐ¼ÐµÐ½Ñ ÑапÑово закÑнÑивÑÑ Ñ ÑеÑÐµÐ´Ð¸Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½ÑаÑÑ Ñи ÑнÑÑÑÑкÑÑÑ Ð¾Ð±Ñобки" #: glib/goption.c:875 msgid "[OPTIONâ¦]" @@ -5632,8 +5618,7 @@ #. should not happen in GRegex since we check modes before each match #: glib/gregex.c:514 msgid "matching mode is requested that was not compiled for JIT" -msgstr "" -"надÑйÑов Ð·Ð°Ð¿Ð¸Ñ Ñодо ÑÐµÐ¶Ð¸Ð¼Ñ Ð²ÑдповÑдноÑÑÑ, Ñкий не бÑло зÑбÑано Ð´Ð»Ñ JIT" +msgstr "надÑйÑов Ð·Ð°Ð¿Ð¸Ñ Ñодо ÑÐµÐ¶Ð¸Ð¼Ñ Ð²ÑдповÑдноÑÑÑ, Ñкий не бÑло зÑбÑано Ð´Ð»Ñ JIT" #: glib/gregex.c:535 glib/gregex.c:1851 msgid "unknown error" @@ -5957,57 +5942,57 @@ msgid "Child process exited abnormally" msgstr "ÐоÑÑÑнÑй пÑоÑÐµÑ Ð°Ð²Ð°ÑÑйно закÑнÑив ÑобоÑÑ" -#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480 +#: glib/gspawn.c:2039 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480 #, c-format msgid "Failed to read from child pipe (%s)" msgstr "Ðомилка зÑиÑÑÐ²Ð°Ð½Ð½Ñ Ð· доÑÑÑнÑого ÐºÐ°Ð½Ð°Ð»Ñ (%s)" -#: glib/gspawn.c:2404 +#: glib/gspawn.c:2411 #, c-format msgid "Failed to spawn child process â%sâ (%s)" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑÑÑиÑи доÑÑÑнÑй пÑоÑÐµÑ Â«%s» (%s)" -#: glib/gspawn.c:2530 +#: glib/gspawn.c:2537 #, c-format msgid "Failed to fork (%s)" msgstr "Ðомилка ÑÑвоÑÐµÐ½Ð½Ñ Ð¿ÑоÑеÑÑ (%s)" -#: glib/gspawn.c:2690 glib/gspawn-win32.c:503 +#: glib/gspawn.c:2697 glib/gspawn-win32.c:503 #, c-format msgid "Failed to change to directory â%sâ (%s)" msgstr "Ðе вдалоÑÑ Ð·Ð¼ÑниÑи каÑалог на «%s» (%s)" -#: glib/gspawn.c:2700 +#: glib/gspawn.c:2707 #, c-format msgid "Failed to execute child process â%sâ (%s)" msgstr "Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñи доÑÑÑнÑй пÑоÑÐµÑ Â«%s» (%s)" -#: glib/gspawn.c:2710 +#: glib/gspawn.c:2717 #, c-format msgid "Failed to open file to remap file descriptor (%s)" msgstr "Ðе вдалоÑÑ Ð²ÑдкÑиÑи Ñайл Ð´Ð»Ñ Ð·Ð¼Ñни пÑив'Ñзки деÑкÑипÑоÑа Ñайла (%s)" -#: glib/gspawn.c:2718 +#: glib/gspawn.c:2725 #, c-format msgid "Failed to duplicate file descriptor for child process (%s)" msgstr "Ðе вдалоÑÑ Ð·Ð´ÑблÑваÑи деÑкÑипÑÐ¾Ñ Ñайла Ð´Ð»Ñ Ð´Ð¾ÑÑÑнÑого пÑоÑеÑÑ (%s)" -#: glib/gspawn.c:2727 +#: glib/gspawn.c:2734 #, c-format msgid "Failed to fork child process (%s)" msgstr "Ðомилка запÑÑÐºÑ Ð´Ð¾ÑÑÑнÑого пÑоÑеÑÑ (%s)" -#: glib/gspawn.c:2735 +#: glib/gspawn.c:2742 #, c-format msgid "Failed to close file descriptor for child process (%s)" msgstr "Ðе вдалоÑÑ Ð·Ð°ÐºÑиÑи деÑкÑипÑÐ¾Ñ Ñайла Ð´Ð»Ñ Ð´Ð¾ÑÑÑнÑого пÑоÑеÑÑ (%s)" -#: glib/gspawn.c:2743 +#: glib/gspawn.c:2750 #, c-format msgid "Unknown error executing child process â%sâ" msgstr "ÐевÑдома помилка Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ÑÑÑнÑого пÑоÑеÑÑ Â«%s»" -#: glib/gspawn.c:2767 +#: glib/gspawn.c:2774 #, c-format msgid "Failed to read enough data from child pid pipe (%s)" msgstr "Ðе вдалоÑÑ Ð·ÑиÑаÑи доÑÑаÑÐ½Ñ ÐºÑлÑкÑÑÑÑ Ð´Ð°Ð½Ð¸Ñ Ð· доÑÑÑнÑого ÐºÐ°Ð½Ð°Ð»Ñ (%s)" @@ -6159,7 +6144,7 @@ #. Translators: A unit symbol for size formatting, showing for example: "13.0 kB" #: glib/gutils.c:2966 msgid "kB" -msgstr "kB" +msgstr "кÐ" #. Translators: A unit symbol for size formatting, showing for example: "13.0 MB" #: glib/gutils.c:2968 @@ -6229,7 +6214,7 @@ #. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb" #: glib/gutils.c:2998 msgid "Gb" -msgstr "Gb" +msgstr "Ðб" #. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb" #: glib/gutils.c:3000