Commit Graph

27670 Commits

Author SHA1 Message Date
Philip Withnall
82c764ce2e gthreadedresolver: Fix race between source callbacks and finalize
I had thought that because `g_source_destroy()` was called for the two
sources (cancel and timeout) in the `GTask` finalize function for a
threaded resolver operation, that it would be fine to use a plain
pointer in the source callbacks to point to the `GTask`.

That turns out to not be true: because the source callbacks are executed
in the GLib worker thread, and the `GTask` can be finalized in another
thread, it’s possible for a source callback (e.g. `cancelled_cb()`) to
be scheduled in the worker thread, then for the `GTask` to be finalized,
and then the source callback to continue execution and find itself
doing a use-after-free.

Fix that by using a weak ref to the `GTask` in the source callbacks,
rather than a plain pointer.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>

Fixes: #3105
2023-09-11 16:02:15 +01:00
Philip Withnall
3c543ef69f
2.78.0
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
2023-09-08 14:42:18 +01:00
Ekaterine Papava
e1ea1c549a Update Georgian translation 2023-09-08 12:09:06 +00:00
Asier Sarasua Garmendia
69e2007f68 Update Basque translation 2023-09-07 15:32:54 +00:00
Ekaterine Papava
d1660d06bd Update Georgian translation 2023-09-07 01:22:10 +00:00
Anders Jonsson
0cc4109dc8 Update Swedish translation 2023-09-06 23:09:36 +00:00
Michael Catanzaro
a366189062 Merge branch 'keyfile-invalid-escapes' into 'main'
gkeyfile: Temporarily re-allow invalid escapes when parsing strings

Closes #3095

See merge request GNOME/glib!3565
2023-09-06 14:02:58 +00:00
Philip Withnall
a2a5d91354 Merge branch 'fix-gutils-user-database' into 'main'
Fix gutils-user-database unit test

See merge request GNOME/glib!3564
2023-09-06 12:11:49 +00:00
Sebastian Wilhelmi
f7d930a58b Fix gutils-user-database unit test
The gutils-user-database.c is broken in two ways and currently doesn't test anything:

* It only overrides getpwuid, where the implementation used getpwnam_r if it exist, which should be every system for at least 20 years.
* It only partly cargo-culted setting the environment for the local and installed tests, but failed to actually set the environment for either.
2023-09-06 12:11:49 +00:00
Bruce Cowan
9e979ce749 Update British English translation
(cherry picked from commit 3cc56a0e8e)
2023-09-06 11:33:45 +00:00
Philip Withnall
4a96727642 gkeyfile: Temporarily re-allow invalid escapes when parsing strings
Before commit 71b7efd08a, `GKeyFile`
incorrectly allowed invalid escape sequences: it would treat the
sequence as a literal, set a `GError`, but not return failure from the
function. So if a caller was explicitly checking for returned `GError`s,
they could detect the invalid escape; but if they were just checking the
function’s return value, they’d miss it.

This is not correct use of `GError`, and the [Desktop Entry
Spec](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s04.html)
doesn’t allow for invalid escape sequences to be accepted. So it’s wrong
in both ways.

However, the commit above changed this behaviour without realising it,
quite close to the 2.78 stable release deadline. There are numerous key
files in the wild which use invalid escape sequences, and it’s too late
in the cycle to ‘break’ parsing of all of them.

So, for now, revert to the old behaviour for invalid escape sequences,
and give people another cycle to adapt to the changes. This will likely
mean they end up calling `g_key_file_get_value()` rather than
`g_key_file_get_string()`. See
https://gitlab.gnome.org/GNOME/glib/-/issues/3098 for tracking
re-enabling the error handling for invalid escape sequences.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>

Fixes: #3095
See: #3098
2023-09-06 12:08:56 +01:00
Andika Triwidada
efc74ca36c Update Indonesian translation 2023-09-06 06:35:00 +00:00
Changwoo Ryu
346196e6aa Update Korean translation 2023-09-06 04:17:39 +00:00
Balázs Úr
e2c37bd78b Update Hungarian translation 2023-09-05 18:35:27 +00:00
Michael Catanzaro
fcba22cfb9 Merge branch 'pr/fix_install_tags' into 'main'
meson: fix `gnetworking.h` install tag

See merge request GNOME/glib!3561
2023-09-04 12:58:59 +00:00
Philip Withnall
37309f165e Merge branch 'gdbplugin' into 'main'
gdb: Workaround optimized out quark_seq_id

See merge request GNOME/glib!3559
2023-09-04 11:29:57 +00:00
Thibault Saunier
033b472432 gdb: Workaround optimized out quark_seq_id 2023-09-04 11:29:57 +00:00
Philip Withnall
2885999394 Merge branch 'gthread-exit-noreturn' into 'main'
gthread: Annotate g_thread_exit() with G_NORETURN

See merge request GNOME/glib!3562
2023-09-04 11:07:56 +00:00
Alan Mortensen
792682be9c Update Danish translation 2023-09-04 05:43:29 +00:00
Vojtěch Perník
8bbcdb03e5 Update Czech translation 2023-09-03 12:38:40 +00:00
Danial Behzadi
8f9b8c9fa2 Update Persian translation 2023-09-02 20:49:36 +00:00
Yosef Or Boczko
3df4782d92 Update Hebrew translation 2023-09-02 18:04:43 +00:00
Piotr Drąg
3f2bf81ca0 Update Polish translation 2023-09-02 13:39:13 +00:00
Emin Tufan Çetin
3fda0de211 Update Turkish translation 2023-09-02 11:57:48 +00:00
Philip Chimento
a10f42dad8 gthread: Annotate g_thread_exit() with G_NORETURN
pthread_exit() is also marked noreturn, and the function does not in
fact return.

For win32, I can't find a copy of the header file to check if
_endthreadex() is marked with __declspec(noreturn), but its
documentation does say that it never returns.
2023-09-01 23:49:25 -07:00
Benoit Pierre
6380303779 meson: fix gnetworking.h install tag 2023-09-01 22:24:39 +02:00
Philipp Kiemle
dea6ab937f Update German translation 2023-09-01 14:30:04 +00:00
Fran Dieguez
00f8004713 Update Galician translation 2023-09-01 10:28:43 +00:00
Aurimas Černius
5f608cf0fa Update Lithuanian translation 2023-08-31 20:15:53 +00:00
Yuri Chornoivan
27f47e8452 Update Ukrainian translation 2023-08-31 19:10:30 +00:00
Jürgen Benvenuti
55e5e3bcd8 Update German translation
(cherry picked from commit 3e432b6b69)
2023-08-31 14:08:50 +00:00
Philip Withnall
aa2e243dbf
2.77.3
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
2023-08-31 11:23:47 +01:00
Philip Withnall
137956e700 Merge branch '3061-dbus-name-crash' into 'main'
gdbusmessage: Validate required headers have the right type

Closes #3061

See merge request GNOME/glib!3539
2023-08-31 10:14:03 +00:00
Philip Withnall
ff0eea48ae Merge branch 'keyfile-escape-fix' into 'main'
gkeyfile: Fix overwriting of GError

See merge request GNOME/glib!3555
2023-08-31 10:04:50 +00:00
Jan Luebbe
71b7efd08a gkeyfile: Fix overwriting of GError
When parsing a line of "key3=foo\i\" in a keyfile,
g_key_file_parse_value_as_string currently first sets the error to
'contains invalid escape' and later to 'contains escape character at end
of line'.

This leaks the first GError and causes the following warning message:
  Error set over the top of a previous GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is
  NULL before it's set. The overwriting error message was: Key file
  contains escape character at end of line

Fix this by returning when an error is detected. As we may have
collected data in pieces, we instead collect to a tmp_pieces GSList and
free it on error.
2023-08-30 19:17:44 +02:00
Amn Alam
7438668696 Update Punjabi translation 2023-08-30 01:55:48 +00:00
Michael Catanzaro
197e6d6f5d Merge branch '3090-resource-uri-malformed' into 'main'
gresourcefile: Fix crash if called with a badly escaped URI

Closes #3090

See merge request GNOME/glib!3554
2023-08-29 15:31:32 +00:00
Philip Withnall
ed03b1f3f6 gresourcefile: Fix crash if called with a badly escaped URI
Return an invalid `GFile` instead, as is the custom for VFS functions.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>

Fixes: #3090
2023-08-29 11:22:43 +01:00
Philip Withnall
b35e70a701 Merge branch 'ebassi/rst-codegen-fixes' into 'main'
Generate missing docs for out arguments

See merge request GNOME/glib!3553
2023-08-28 17:16:34 +00:00
Emmanuele Bassi
5f8af01b8b Generate RST anchors for methods, signals, and properties
Don't rely on the titles.
2023-08-28 16:59:32 +01:00
Emmanuele Bassi
5f33ae8901 Generate missing docs for out arguments
The reStructuredText generator is missing the documentation blocks for
out arguments.
2023-08-28 16:59:32 +01:00
Philip Withnall
9f6b77d835 gdbusconnection: Add some assertions about required message fields
The fields are fully validated in `validate_headers()` in
`gdbusmessage.c` now, so the connection code should be able to rely on
the required ones being non-`NULL`.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>

Helps: #3061
2023-08-28 11:11:37 +01:00
Philip Withnall
eae5c49085 gdbusconnection: Combine two identical variables
`object_path` and `path` were doing exactly the same thing here.

This introduces no functional changes.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
2023-08-28 11:11:37 +01:00
Philip Withnall
7cca4b1590 gdbusmessage: Validate required headers have the right type
We already validated that the required headers for each type of D-Bus
message were present. However, we didn’t validate that they contained a
variant of the right type. This could lead to functions like
`g_dbus_message_get_path()` returning `NULL` unexpectedly.

This failure could only be hit when using GDBus in peer-to-peer mode, or
with a D-Bus server which didn’t validate the headers itself. The
reference D-Bus server does validate the headers, and doesn’t forward
invalid messages to clients.

Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>

Fixes: #3061
2023-08-28 11:11:37 +01:00
Anders Jonsson
ac9bcd1c1d Update Swedish translation 2023-08-27 20:26:13 +00:00
Philip Withnall
fd2d1e829e Merge branch 'fix-async' into 'main'
glib/tests/asyncqueue.c: skip test_async_queue_timed in 2038 or later

See merge request GNOME/glib!3550
2023-08-24 19:45:10 +00:00
Alexander Kanavin
9bdb19b821 glib/tests/asyncqueue.c: skip test_async_queue_timed in 2038 or later 2023-08-24 19:45:09 +00:00
Michael Catanzaro
5216e8c7d5 Merge branch 'fix-tmpfile' into 'main'
glib/gfileutils.c: use 64 bits for value in get_tmp_file()

See merge request GNOME/glib!3547
2023-08-23 17:38:49 +00:00
Alexander Kanavin
285db475ec glib/gfileutils.c: use 64 bits for value in get_tmp_file()
On 32 bit systems 'long' value will overflow in 2038 and become negative.
As it is used to index into letters array, and % operation preserves signs,
data corruption will then occur.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
2023-08-23 14:50:41 +02:00
Michael Catanzaro
8754a57d95 Merge branch '3083-option-docs-list' into 'main'
goption: Fix list formatting in documentation comment

Closes #3083

See merge request GNOME/glib!3546
2023-08-21 13:36:58 +00:00