Commit Graph

23890 Commits

Author SHA1 Message Date
Sebastian Dröge
a28c93003b Merge branch 'backport-2161-delayed-settings-null-handling-glib-2-70' into 'glib-2-70'
Backport !2161 “gdelayedsettingsbackend: Fix applying after calling g_settings_reset()” to glib-2-70

See merge request GNOME/glib!2320
2021-11-04 10:52:37 +00:00
Philip Withnall
e665cc94c4 gsettings: Drop internal delayed member
This introduces no functional changes; it only simplifies the code.

Instead of maintaining a separate pointer to the backend iff it’s a
`GDelayedSettingsBackend`, just test the `backend` pointer’s type.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #2426
2021-11-04 10:21:13 +00:00
Philip Withnall
f941329b56 gsettings: Clarify that g_settings_get_child() inherits delay-apply
Previously, the delay-apply status of the parent `GSettings` object
would be partially inherited: `settings->priv->backend` in the child
`GSettings` object would point to a `GDelayedSettingsBackend`, but
`settings->priv->delayed` would be `NULL`.

The expectation from https://bugzilla.gnome.org/show_bug.cgi?id=720891
was that `get_child()` would fully inherit delay-apply status.

So, ensure that `settings->priv->delayed` is correctly set to point to
the delayed backend when constructing any `GSettings`. Update the tests
to work again (presumably the inverted test was an oversight in the
original changes).

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2426
2021-11-04 10:21:11 +00:00
Philip Withnall
51e16afcbf gsettings: Improve documentation formatting slightly
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-04 10:20:35 +00:00
Philip Withnall
62a1f3b9b5 tests: Use a helper macro to drop redundant code in gsettings test
This introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-04 10:20:35 +00:00
Philip Withnall
21b1767af6 gdelayedsettingsbackend: Fix applying after calling g_settings_reset()
`g_settings_reset()` changes the value of the setting to `NULL`;
`add_to_tree()` was not handling that correctly.

Add a unit test.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2426
2021-11-04 10:20:35 +00:00
Philip Withnall
eaf3169a4b Merge branch 'backport-2260-win32-registry-assert-glib-2-70' into 'glib-2-70'
Backport !2260 “GWin32AppInfo: Remove assertion on the opened registry key” to glib-2-70

See merge request GNOME/glib!2313
2021-11-01 15:34:54 +00:00
Luca Bacci
eb3bcf8ba0 GWin32AppInfo: Remove assertion on the opened registry key
Relax assertion about opened registry key as it may have been removed
in the meantime between enumeration and when opening, or (more likely)
we may not have the required permissions to open the some enumerated
keys (i.e. RegOpenKeyExW fails and returns ERROR_ACCESS_DENIED).

Fixes https://gitlab.com/inkscape/inbox/-/issues/5669
2021-11-01 14:33:13 +00:00
Sebastian Dröge
2aca2cfbcc Merge branch 'backport-2308-volatile-glib-2-70' into 'glib-2-70'
Backport !2308 “gthread-win32: Remove an unnecessary volatile qualifier” to glib-2-70

See merge request GNOME/glib!2314
2021-11-01 12:36:23 +00:00
Philip Withnall
66a195bb78 gthread-win32: Remove an unnecessary volatile qualifier
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-01 12:00:50 +00:00
Philip Withnall
2be5416a35 2.70.1
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-28 13:29:17 +01:00
Philip Withnall
359a837ee4 Merge branch 'fatal-meson-warnings' into 'glib-2-70'
meson: fix warnings for extract_all_objects function

See merge request GNOME/glib!2304
2021-10-21 09:35:16 +00:00
Eli Schwartz
a1a3a41bea
update the proxy-libintl subproject to the latest release
0.2 was just tagged, which includes a commit from 2018 that fixes a
meson warning which caused the project to fail to build on Windows with
--fatal-meson-warnings enabled.

(cherry picked from commit 9255f1b2a9)
2021-10-20 15:35:24 -04:00
Eli Schwartz
397840eb18
meson: fix warnings for extract_all_objects function
The "recursive:" kwarg is available in the targeted minimum version of
meson, and is basically required if you want to not emit warnings and
maybe error with --fatal-meson-warnings.

The current default behavior is false, so explicitly opt in to that value.
None of these internal libraries use recursive objects anyway.

In commit c74d87e44038925baf37367ce124c027e225c11e we went a different
route, and upgraded the minimum meson version and dropped the TODO
workarounds in these files. But for a stable branch this is not
desirable.
2021-10-20 15:33:19 -04:00
Sebastian Dröge
7c9b1781e4 Merge branch 'backport-2293-msvc-analyser-fix-glib-2-70' into 'glib-2-70'
Backport !2293 “glib-private: Fix MSVC build with AddressSanitizer” to glib-2-70

See merge request GNOME/glib!2301
2021-10-19 06:30:41 +00:00
Sebastian Dröge
476895b85f Merge branch 'backport-2274-getpwnam-glib-2-70' into 'glib-2-70'
Backport !2274 “Do not try to access errno after calling getpwnam_r.” to glib-2-70

See merge request GNOME/glib!2276
2021-10-19 06:25:07 +00:00
Sebastian Dröge
494062b36f Merge branch 'backport-2251-string-performance-glib-2-70' into 'glib-2-70'
Backport !2251 “GString: Bump minimum size” to glib-2-70

See merge request GNOME/glib!2253
2021-10-19 06:21:55 +00:00
Sebastian Dröge
39183abe81 Merge branch 'backport-2285-svace-fixes-glib-2-70' into 'glib-2-70'
Backport !2285 “fix issues found by svace static code analyzer” to glib-2-70

See merge request GNOME/glib!2300
2021-10-19 06:21:23 +00:00
Sebastian Dröge
7513af8f07 Merge branch 'backport-2291-nm-properties-changed-glib-2-70' into 'glib-2-70'
Backport !2291 “gnetworkmonitornm: Stop using removed PropertiesChanged signal” to glib-2-70

See merge request GNOME/glib!2302
2021-10-19 06:20:54 +00:00
Julian Andres Klode
20fedaf01d gnetworkmonitornm: Do not re-update cached property
GDBusProxy already takes care of updating the cached property
before emitting the signal, so there is no need to do this
a second time ourselves.
2021-10-18 13:22:09 +01:00
Julian Andres Klode
8fc462f761 gnetworkmonitornm: Stop using removed PropertiesChanged signal
Use the org.freedesktop.DBus.Properties interface to listen
to PropertiesChanged signals on /org/freedesktop/NetworkManager.

NetworkManager used to provide its own legacy PropertiesChanged
signal, but that was dropped in
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/853

This requires NetworkManager >= 1.2 (2016)

Fixes: #2505
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1946196
2021-10-18 13:22:09 +01:00
Seungha Yang
376c9c360d glib-private: Fix MSVC build with AddressSanitizer
MSVC supports AddressSanitizer as well via "/fsanitize=address" option,
but __lsan_ignore_object() equivalent feature is not supported.
Note that there's __declspec(no_sanitize_address) specifier which
provides a similar feature but that's not runtime behavior
so it's not directly applicable to g_ignore_leak() family.

See also https://docs.microsoft.com/en-us/cpp/sanitizers/asan-building?view=msvc-160
2021-10-18 13:21:29 +01:00
Egor Bychin
2f8e17ad84 add OOM handling in mimemagic 2021-10-18 13:20:48 +01:00
Egor Bychin
c590938ba9 gtype: Fix pointer being dereferenced despite NULL check 2021-10-18 13:20:48 +01:00
Egor Bychin
3d80917578 gvariant: Fix pointers being dereferenced despite NULL checks 2021-10-18 13:20:48 +01:00
Egor Bychin
d25f5c0dfb gvariant: Fix memory leak on a TYPE_CHECK failure 2021-10-18 13:20:48 +01:00
Egor Bychin
88604931bb gslice: Fix page size being limited to int instead of gsize 2021-10-18 13:20:48 +01:00
Egor Bychin
644c9b964d gmessages: Add check for a localtime function return value 2021-10-18 13:20:48 +01:00
Egor Bychin
da1d64cb4d gkeyfile: Remove unreachable code 2021-10-18 13:20:48 +01:00
Egor Bychin
4d8c5b6d77 gbacktrace: Fix fcntl command arguments not being checked 2021-10-18 13:20:48 +01:00
Egor Bychin
f4ea12c6b4 gsocks5proxy: Fix buffer overflow on a really long domain name 2021-10-18 13:20:48 +01:00
Egor Bychin
567fae6e0b gsocket: Add ignorant of an fcntl return value 2021-10-18 13:20:48 +01:00
Egor Bychin
8d056da0bf gsettings-mapping: Fix HANDLE being treated as unsigned 2021-10-18 13:20:48 +01:00
Egor Bychin
e81c9098b0 gproxyaddressenumerator: Fix string leakage on an invalid input 2021-10-18 13:20:48 +01:00
Egor Bychin
b293fc5376 gopenuriportal: Fix GVariantBuilder and string leakage on g_open failure 2021-10-18 13:20:48 +01:00
Egor Bychin
5eb4e095c7 gmarshal-internal: Fix string leakage due to misplaced check 2021-10-18 13:20:48 +01:00
Egor Bychin
55dea0fd8d glocalfileinfo: Fix atime/mtime mix due to bad copy/paste 2021-10-18 13:20:48 +01:00
Egor Bychin
7b582a9993 glocalfile: Fix g_stat return value not being checked 2021-10-18 13:20:48 +01:00
Egor Bychin
5796babc5c gdbusauthmechanismsha1: Fix pointer being freed after being NULLed 2021-10-18 13:20:48 +01:00
Gleb Popov
881b4c215f Do not try to access errno after calling getpwnam_r. 2021-09-28 11:40:37 +01:00
Emmanuele Bassi
25009189d1 Merge branch 'backport-2266-fix-uninit-variable-glib-2-70' into 'glib-2-70'
Backport !2266 “fix uninitial variable” to glib-2-70

See merge request GNOME/glib!2271
2021-09-27 14:01:34 +00:00
liuyangming
8d884c21bf fix uninitial variable 2021-09-27 14:40:18 +01:00
Simon McVittie
53b70ce88c Merge branch 'backport-2244-utils-crash-glib-2-70' into 'glib-2-70'
Backport !2244 “gutils: Avoid segfault in g_get_user_database_entry” to glib-2-70

See merge request GNOME/glib!2262
2021-09-25 11:00:03 +00:00
Jamie Bainbridge
47114f52dd gutils: Avoid segfault in g_get_user_database_entry
g_get_user_database_entry() capitalises the first letter of pw_name
with g_ascii_toupper (pw->pw_name[0]).

However, the manpage for getpwnam() and getpwuid() says the result of
those calls "may point to a static area". GLib is then trying to edit
static memory which belongs to a shared library, so segfaults.

The reentrant variants of the above calls are supposed to fill the user
buffer supplied to them, however Michael Catanzaro also found a bug in
systemd where the data is not copied to the user buffer and still points
to static memory, resulting in the same sort of segfault. See:
https://github.com/systemd/systemd/issues/20679

Solve both these cases in GLib by copying pw_name off to a temporary
variable, set uppercase on that variable, and use the variable to join
into the desired string. Free the variable after it is no longer needed.

Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
2021-09-22 14:57:50 +01:00
Emmanuele Bassi
0d0a993785 Merge branch 'backport-2257-object-manager-docs-glib-2-70' into 'glib-2-70'
Backport !2257 “Fix documentation for g_dbus_object_manager_get_object().” to glib-2-70

See merge request GNOME/glib!2259
2021-09-21 10:40:35 +00:00
Robert Ancell
f86488c1e6 Fix documentation for g_dbus_object_manager_get_object().
The class in the documentation is true for GDBusObjectManagerClient, but not for GDBusObjectManagerServer.
2021-09-21 11:20:26 +01:00
Emmanuele Bassi
6918c035ce Merge branch 'backport-2254-object-set-performance-glib-2-70' into 'glib-2-70'
Backport !2254 “Small optimization for g_object_set” to glib-2-70

See merge request GNOME/glib!2256
2021-09-20 13:46:04 +00:00
Matthias Clasen
1197b1362c Small optimization for g_object_setv
No need to call memset in the loop, we can just
initialize all the values in one go.

GtkBuilder is now using g_object_setv, so this
may improve application start times a bit.
2021-09-20 13:29:49 +01:00
Matthias Clasen
ff095d252d Small optimization for g_object_set
We've already followed the redirection, no need
to check for that again - just avoid notifying
non-readable properties.
2021-09-20 13:29:49 +01:00
Matthias Clasen
5f64478a68 GString: Bump minimum size
GString starts out at a size of 2, which is just
not useful. Bump the minimum size to 64 to cut
down on the number of tiny reallocations we do.
2021-09-20 10:10:19 +01:00