24941 Commits

Author SHA1 Message Date
Philip Withnall
938ea5141f gcontenttype: Fix a potential use-after-free of xdgmime data
While `gio_xdgmime` is unlocked, the data which `type` points to in the
xdgmime cache might get invalidated, leaving `type` as a dangling
pointer. That would not bode well for the `g_strdup (type)` call to
insert a new entry into the `type_comment_cache` once `gio_xdgmime` is
re-acquired.

This was spotted using static analysis, and the symptoms have not
knowingly been seen in the wild.

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

Coverity CID: #1474702

(cherry-picked from commit 45d4c525)
2022-09-20 12:20:17 +02:00
Marco Trevisan (Treviño)
28fe069024 gioerror: Map ETXTBSY to G_FILE_ERROR_BUSY
It's a busy text file, but we don't care much about specifics so we
can just return the generic busy error.

(cherry-picked from commit 6bc6b7ef3012487966a99a5db06d27000205ab38)
2022-09-20 12:20:17 +02:00
Marco Trevisan (Treviño)
a6a725c27a gioerror: Handle EMLINK error as too-many-links error
This used to be a FreeBSD only error but it's actually defined also in
linux.

(cherry-picked from commit 9e09894414ca092a07cd094b4fad1fdab0906a9)
2022-09-20 12:20:17 +02:00
Marco Trevisan (Treviño)
f29beb246c gsignal: Perform signal unlocked handlers block, unblock and disconnect ops
We used to perform unneeded lock/unlock dances to perform block, unblock
and disconnect actions, and these were potentially unsafe because we
might have looped in data that could be potentially be changed by other
threads.

We could have also done the same by saving the handlers ids in a
temporary array and eventually remove them, but I don't see a reason for
that since we can just keep all locked without the risk of creating
deadlocks.

Coverity CID: #1474757, #1474771, #1474429

(cherry-picked from commit ae14f3219a756fa99dbbbb54555f10dd48eb0fea)
2022-09-20 12:20:17 +02:00
Matteo Biggio
60410766df gsocketaddressenumerator: add nullable annotation to the result of next
The returned `SocketAddress` is going to be NULL when the stream of
socket addresses is finished

(cherry-picked from commit ac3fc84ff41ad1fbcad765d170f5d741813dc84e)
2022-09-20 12:20:17 +02:00
Philip Withnall
e52494c49b gtlscertificate: Hold a ref on the root certificate when building chains
This is unlikely to be a bug in practice, as the certificate pointed to
by `root` should have a ref held on it as the issuer of another
certificate in the chain.

However, we can’t guarantee that’s how the `GTlsCertificate`
implementation behaves, so keep a temporary ref on `root` until it’s no
longer needed.

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

Coverity CID: #1489985

(cherry-picked from commit 2c75c392eb76a12c3fd18b63508b1f971a3afecd)
2022-09-20 12:20:17 +02:00
Marco Trevisan (Treviño)
8434e704f1 gthread: Fix Since tag typo in documentation for some methods 2022-09-20 12:20:17 +02:00
Michael Catanzaro
3f10df2d7b xdgmime: fix double free
We free xdg_dirs[i] twice, but fail to free xdg_dirs itself.

Also, since free() is NULL-safe, there is no need for the second check
here.

Discovered in: https://gitlab.freedesktop.org/xdg/xdgmime/-/merge_requests/16#note_1432025

(cherry-picked from commit f95ca6cb713383548f16f9a8ba2f6c51a4d25e25)
2022-09-20 12:19:56 +02:00
Andy Holmes
38d727524a GActionGroup: Fix ownership transfer annotation for query_action()
The `(transfer none)` behaviour for `parameter_type` and `state_type`
parameters is implicit with the `const` attribute, but was incorrectly
determined to be `(transfer full)` in the GIR.

Add explicit `(transfer none)` annotations for these two parameters.

(cherry-picked from commit 1eb1a47a50f31b2cea71cf8c94c8989727abb98c)
2022-09-20 12:19:37 +02:00
Marc-André Lureau
091e409dee glib/win32: fix potential leak on spawn error
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

(cherry-picked from commit 982b074fa97bcabc5e7624ac883b035a403f401e)
2022-09-20 12:18:59 +02:00
Marc-André Lureau
491059294e glib/tests/spawn-path-search: fix stack-buffer-overflow
==24477==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffde020de20 at pc 0x7f2e6f6413f1 bp 0x7ffde020c9d0 sp 0x7ffde020c180
READ of size 4101 at 0x7ffde020de20 thread T0
    #0 0x7f2e6f6413f0 in __interceptor_strlen.part.0 (/lib64/libasan.so.8+0x4c3f0)
    #1 0x7f2e6ef4abee in g_build_path_va ../glib/gfileutils.c:1908
    #2 0x7f2e6f085956 in g_test_build_filename_va ../glib/gtestutils.c:4294
    #3 0x7f2e6f086684 in g_test_build_filename ../glib/gtestutils.c:4365
    #4 0x403a33 in test_search_path_heap_allocation ../glib/tests/spawn-path-search.c:422
    #5 0x7f2e6f0839a5 in test_case_run ../glib/gtestutils.c:2930
    #6 0x7f2e6f0839a5 in g_test_run_suite_internal ../glib/gtestutils.c:3018
    #7 0x7f2e6f0834ed in g_test_run_suite_internal ../glib/gtestutils.c:3035
    #8 0x7f2e6f084879 in g_test_run_suite ../glib/gtestutils.c:3112
    #9 0x7f2e6f084995 in g_test_run ../glib/gtestutils.c:2231
    #10 0x40145f in main ../glib/tests/spawn-path-search.c:488
    #11 0x7f2e6e31258f in __libc_start_call_main (/lib64/libc.so.6+0x2d58f)
    #12 0x7f2e6e312648 in __libc_start_main_alias_1 (/lib64/libc.so.6+0x2d648)
    #13 0x401524 in _start (/home/elmarco/src/gnome/glib/build/glib/tests/spawn-path-search+0x401524)

Address 0x7ffde020de20 is located in stack of thread T0 at offset 4256 in frame
    #0 0x40387f in test_search_path_heap_allocation ../glib/tests/spawn-path-search.c:401

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

(cherry-picked from 15ce3c9b37c2767c82de249e60781439c9abaf78)
2022-09-20 12:17:57 +02:00
Philip Withnall
cd657d692d gobject: Sink floating pspecs if adding them to a class fails
This may fix Coverity assuming that pspecs are leaked, which is causing
tens and tens of false positives in the latest Coverity reports for
GLib.

Ensure that the pspecs are sunk (if floating) even if adding them to the
class fails (due to validation failure or an identically named property
already existing).

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

(cherry-picked from commit 8f7df344b636d5fda3d05560f5142d5d8515662a)
2022-09-20 12:17:36 +02:00
Marco Trevisan (Treviño)
af10448a05 gdesktopappinfo: Unref the GDBus call results
On our GDBus call callback wrapper we were completing the gdbus call but
ignoring the returned value, that was always leaked.

Fix this.

Helps with: https://gitlab.gnome.org/GNOME/glib/-/issues/333

(cherry-picked from commit 221f22b6e18fdd306e676e28a79afd3697bddd03)
2022-09-20 12:17:17 +02:00
Marco Trevisan (Treviño)
b918a257ff gdesktopappinfo: Unref GDBus call result GVariant if no callback is set
When launching URIs via dbus we may ignore the callback if one was not
provided, however in such case we were also leaking the return value for
the gdbus call.

Unref it properly.

Helps with: https://gitlab.gnome.org/GNOME/glib/-/issues/333

(cherry-picked from commit 026a69905eec18e9ea0486ea351496e461c8681e)
2022-09-20 12:16:46 +02:00
Tom Levy
ab47152bfa docs: Improve wording in documentation of g_unix_signal_source_new()
- Insert missing word "from".

- Remove space between function name and "()" so syntax highlighting
  can recognise it as a function.

- Avoid "you"/"your" when discussing the reentrancy issues of regular
  UNIX signal handlers, because it gives the false impression that
  these issues are applicable to g_unix_signal_source_new().

Unrelated:

- Fix missing space in documentation of g_signal_new_class_handler().

(cherry-picked from commit eeaef8b950580dd76f1c87748e336453301bae9a)
2022-09-20 12:16:25 +02:00
Philip Withnall
b34b4ebe8c garray: Add missing (transfer full) introspection annotations
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

(cherry-picked from commit a9321c365222c4fe0fe7a33e0d3c0a0cb635b318)
2022-09-20 12:15:58 +02:00
Marco Trevisan (Treviño)
679a624600 glib-unix: Mark GLib.unix_open_pipe fds input array as fixed-size
(cherry-picked from commit 3a197d7500f20894f6832645502270b20d1e446a)
2022-09-20 12:15:35 +02:00
Andy Holmes
7c6ba93151 gparamspec: mark nick/blurb as nullable
GParamSpec nicks and blurbs are effectively a deprecated feature,
or at least unused by most libraries these days. Since a number
of C libraries (i.e. GTK4) have started to null these out, annotate
them as `(nullable)` so bindings can do the same.

Closes #2719

(cherry-picked from commit 79c70d7a362f4b793363275cbe37d3c08f7ea884)
2022-09-20 12:15:14 +02:00
Marco Trevisan (Treviño)
ba9ed375e9 tests/dbus-appinfo: Add test case for flatpak opening an invalid file
We were testing the case in which we were opening an actual file, and so
potentially using a fd-list, however we were missing the case in which a file
was not existent.

And in such case we are incidentally hitting a leak now.

(cherry-picked from commit 511627b7356af527c85c049e2020a36694d7de54)
2022-09-20 12:14:54 +02:00
Sebastian Keller
aafa45e583 documentportal: Fix small leak in add_documents with empty URI list
When called with an empty URI list (or only inaccessible files),
g_document_portal_add_documents would not call g_variant_builder_end,
leaking the memory allocated by the variant builder.

Closes: https://gitlab.gnome.org/GNOME/glib/-/issues/2733

(cherry-picked from commit 27203e48c91ab8b55033dcf1773cb60c0aaed3fa)
2022-09-20 12:13:45 +02:00
Hodong
e77f036cb6 Fix the annotation of g_utf8_strncpy()
(cherry-picked from commit 797bcf3224ef87992c0a7eaa10d5bf888ad7120e)
2022-09-20 12:13:13 +02:00
Philip Withnall
7d63f9446c gthread: Fix futex timespec type on 32-bit kernels with 64-bit userspace
The `struct timespec` type documented as being passed to the `futex()`
syscall actually needs to be the *kernel’s* timespec type. This will be
a different width from the userspace timespec type if running a 64-bit
userspace on a 32-bit kernel.

That mismatch will cause `g_cond_wait_until()` to return `FALSE`
immediately.

No other uses of `futex()` in GLib use the timeout argument, so they’re
all OK.

Following a detailed suggestion by Rich Felker, pass a different
timespec type into `futex()` if `__NR_futex_time64` is defined. That’s
the 64-bit time version of `futex()` which was added in kernel 5.1, and
which was only added for 32-bit kernels.

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

Fixes: #2634

(cherry-picked from commit eec65c761bb406beccf674e371ea38b231136707)
2022-09-20 12:12:43 +02:00
Balázs Úr
e5599f7975 Update Hungarian translation 2022-08-31 23:28:21 +00:00
Marek Černocký
c4a0d2027c Updated Czech translation 2022-08-29 10:49:55 +02:00
Zurab Kargareteli
c1189f157a Update Georgian translation 2022-08-15 19:43:47 +00:00
Daniel Mustieles
da6318160c Updated Spanish translation 2022-08-08 12:41:05 +02:00
Michael Catanzaro
f8b7a0e802 Merge branch 'backport-2808-socket-cancellable-glib-2-72' into 'glib-2-72'
Backport !2808 “gsocketclient: Fix passing NULL to g_task_get_cancellable()” to glib-2-72

See merge request GNOME/glib!2810
2022-07-12 16:10:00 +00:00
Philip Withnall
99783e0408 gsocketclient: Fix passing NULL to g_task_get_cancellable()
Fix a regression from commit abddb42d14, where it could pass `NULL` to
`g_task_get_cancellable()`, triggering a critical warning. This could
happen because the lifetime of `data->task` is not as long as the
lifetime of the `ConnectionAttempt`, but the code assumed it was.

Fix the problem by keeping a strong ref to that `GCancellable` around
until the `ConnectionAttempt` is finished being destroyed.

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

Fixes: #2687
2022-07-12 16:43:48 +01:00
Мирослав Николић
776719234a Update Serbian translation 2022-07-03 01:58:23 +00:00
Philip Withnall
dce30492f6 2.72.3
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2.72.3
2022-06-30 15:15:17 +01:00
Michael Catanzaro
436e5a6041 Merge branch 'backport-2742-proxy-fix-glib-2-72' into 'glib-2-72'
Backport !2742 “proxyaddressenumerator: set error parameter more thoughtfully” to glib-2-72

See merge request GNOME/glib!2787
2022-06-28 15:35:42 +00:00
Michael Catanzaro
dbe5359084 proxyaddressenumerator: set error parameter more thoughtfully
It doesn't make sense for a proxy resolver to return NULL without an
error on the first call. Whereas a DNS resolver would do this to
indicate that a query completed successfully but found no results, a
proxy resolver should return "direct://" instead. Therefore, if we are
going to return NULL, we ought to have an error as well. Let's make sure
this actually happens by adding some fallback errors just in case
GProxyResolver feeds us weird results.

Additionally, we should not return any errors except
G_IO_ERROR_CANCELLED after the very first iteration. This is an API
contract of GSocketAddressEnumerator. Let's add some checks to ensure
this.

Note that we have inadequate test coverage for GProxyAddressEnumerator.
It's tested here only via GSocketClient. We could do a bit better by
testing it directly as well. For example, I've added tests to see what
happens when GProxyResolver returns both a valid and an invalid URI, but
it's not so interesting here because GSocketClient always uses the valid
result and ignores the error from GProxyAddressEnumerator.

(Backport to 2.72: Dropped new translatable strings in error messages to
avoid additional translation work on a stable branch. The error messages
are unlikely to be seen by users.)

Fixes #2597
2022-06-28 11:38:29 +01:00
Michael Catanzaro
e80a5a75e2 Merge branch 'backport-2745-socketclient-cancellable-glib-2-72' into 'glib-2-72'
Backport !2745 “gsocketclient: Fix still-reachable references to cancellables” to glib-2-72

See merge request GNOME/glib!2750
2022-06-14 19:24:56 +00:00
Philip Withnall
abddb42d14 gsocketclient: Fix still-reachable references to cancellables
`GSocketClient` chains its internal `GCancellable` objects to ones
provided by the caller in two places using `g_cancellable_connect()`.
However, it never calls `g_cancellable_disconnect()`, instead relying
(incorrectly) on the `GCancellable` provided by the caller being
short-lived.

In the (valid) situation where a caller reuses one `GCancellable` for
multiple socket client calls, or for calls across multiple socket
clients, this will cause the internal `GCancellable` objects from those
`GSocketClient`s to accumulate, with one reference left each (which is
the reference from the `g_cancellable_connect()` closure).

These `GCancellable` instances aren’t technically leaked, as they will
all be freed when the caller’s `GCancellable` is disposed, but they are
no longer useful and there is no bound on the number of them which will
hang around.

For a program doing a lot of socket operations, this still-reachable
memory usage can become significant.

Fix the problem by adding paired `g_cancellable_disconnect()` calls.
It’s not possible to add a unit test as we can’t measure still-reachable
memory growth before the end of a unit test when everything has to be
freed.

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

Fixes: #2670
2022-06-14 18:48:48 +01:00
Michael Catanzaro
55828ce5bf Merge branch 'backport-2708-xdgmime-fix-glib-2-72' into 'glib-2-72'
Backport !2708 “xdgmime: Fix broken file:// content type lookups for webkitgtk” to glib-2-72

See merge request GNOME/glib!2720
2022-06-06 14:34:00 +00:00
Philip Withnall
3c946645ff xdgmime: Fix broken file:// content type lookups for webkitgtk
This re-applies a chunk from commit e63262d49d40a36060 which was
accidentally lost when upstreaming the commit to xdgmime (as
https://gitlab.freedesktop.org/xdg/xdgmime/-/merge_requests/10).

The upstreamed commit was then re-backported to GLib as a1bfe899abe,
without the missing chunk.

The missing chunk is potentially causing incorrect content type results
for `file://` URIs when used from webkitgtk.

Thanks to Stephen Jung and Michael Catanzaro for investigating.

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

Fixes: #2639
2022-06-06 14:56:48 +01:00
Simon McVittie
7b9f6755b9 Merge branch 'backport-2561-file-monitor-deadlock-glib-2-72' into 'glib-2-72'
glocalfilemonitor: Avoid file monitor destruction from event thread

See merge request GNOME/glib!2703
2022-06-01 17:33:10 +00:00
Simon McVittie
cc2dc12d0e Merge branch 'wip/pwithnall/backport-2707-macos-local-peerpid-fix-glib-2-72' into 'glib-2-72'
Backport !2707 “credentials: macos: check for existence of LOCAL_PEERPID” to glib-2-72

See merge request GNOME/glib!2709
2022-06-01 17:25:06 +00:00
Christopher Nielsen
e4271674cc credentials: macos: check for existence of LOCAL_PEERPID
- Fixes build errors for macOS 10.7 and earlier, where this is not supported
2022-06-01 14:12:17 +01:00
Philip Withnall
1fc6a5c9b6 tests: Add a test for GFileMonitor deadlocks
This test is opportunistic in that it’s not possible to detect whether
the race condition has been hit (other than by hitting a deadlock).

So the only approach we can take for testing is to loop over the code
which has previously been known to cause a deadlock a number of times.

The number of repetitions is chosen from running the test with the
deadlock fix reverted.

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

Helps: #1941
2022-05-31 13:22:02 +01:00
Philip Withnall
57bde3c9bd glocalfilemonitor: Skip event handling if the source has been destroyed
This should prevent unbounded growth of the `event_queue` in the
unlikely case that the `GSource` is removed from its `GMainContext` and
destroyed separately from the `GFileMonitor`.

I’m not sure if that can currently happen, but it could with future
refactoring, so it’s best to address the possibility now while we’re
thinking about this bit of code.

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

Helps: #1941
2022-05-31 13:22:02 +01:00
Benjamin Berg
222f6ceada glocalfilemonitor: Avoid file monitor destruction from event thread
Taking a reference to the GFileMonitor when handling events may cause
object destruction from th worker thread that calls the function. This
condition happens if the surrounding code drops the otherwise last
reference ot the GFileMonitor. The series of events causes destruction
from an unrelated worker thread and also triggers g_file_monitor_cancel
to be called from g_file_monitor_source_handle_event.

For the inotify backend, this results in a deadlock as cancellation
needs to take a lock that protects data structures from being modified
while events are dispatched.

One alternative to this approach might be to add an RCU (release, copy,
update) approach to the lists contained in the wd_dir_hash and
wd_file_hash hash tables.

Fixes: #1941

An example stack trace of this happening is:

Thread 2 (Thread 0x7fea68b1d640 (LWP 260961) "gmain"):
 #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
 #1  0x00007fea692215dc in g_mutex_lock_slowpath (mutex=mutex@entry=0x7fea6911e148 <g.inotify_lock_lock>) at ../glib/gthread-posix.c:1493
 #2  0x00007fea69222062 in g_mutex_lock (mutex=mutex@entry=0x7fea6911e148 <g.inotify_lock_lock>) at ../glib/gthread-posix.c:1517
 #3  0x00007fea6908025a in _ih_sub_cancel (sub=0x1492620) at ../gio/inotify/inotify-helper.c:131
 #4  0x00007fea6907f9da in g_inotify_file_monitor_cancel (monitor=0x14a3550) at ../gio/inotify/ginotifyfilemonitor.c:75
 #5  0x00007fea68fae959 in g_file_monitor_cancel (monitor=0x14a3550) at ../gio/gfilemonitor.c:241
 #6  0x00007fea68fae9dc in g_file_monitor_dispose (object=0x14a3550) at ../gio/gfilemonitor.c:123
 #7  0x00007fea69139341 in g_object_unref (_object=<optimized out>) at ../gobject/gobject.c:3636
 #8  g_object_unref (_object=0x14a3550) at ../gobject/gobject.c:3553
 #9  0x00007fea6907507a in g_file_monitor_source_handle_event (fms=0x14c3560, event_type=<optimized out>, child=0x7fea64001460 "spawned-1", rename_to=rename_to@entry=0x0, other=other@entry=0x0, event_time=<optimized out>) at ../gio/glocalfilemonitor.c:457
 #10 0x00007fea6907fe0e in ih_event_callback (event=0x7fea64001420, sub=0x1492620, file_event=<optimized out>) at ../gio/inotify/inotify-helper.c:218
 #11 0x00007fea6908075c in ip_event_dispatch (dir_list=dir_list@entry=0x14c14c0, file_list=0x0, event=event@entry=0x7fea64001420) at ../gio/inotify/inotify-path.c:493
 #12 0x00007fea6908094e in ip_event_dispatch (event=0x7fea64001420, file_list=<optimized out>, dir_list=0x14c14c0) at ../gio/inotify/inotify-path.c:448
 #13 ip_event_callback (event=0x7fea64001420) at ../gio/inotify/inotify-path.c:548
 #14 ip_event_callback (event=0x7fea64001420) at ../gio/inotify/inotify-path.c:530
 #15 0x00007fea69081391 in ik_source_dispatch (source=0x14a2bf0, func=0x7fea69080890 <ip_event_callback>, user_data=<optimized out>) at ../gio/inotify/inotify-kernel.c:327
 #16 0x00007fea691d0824 in g_main_dispatch (context=0x14a2cc0) at ../glib/gmain.c:3417
 #17 g_main_context_dispatch (context=0x14a2cc0) at ../glib/gmain.c:4135
 #18 0x00007fea691d0b88 in g_main_context_iterate (context=context@entry=0x14a2cc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211
 #19 0x00007fea691d0c2f in g_main_context_iteration (context=0x14a2cc0, may_block=may_block@entry=1) at ../glib/gmain.c:4276
 #20 0x00007fea691d0c81 in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6176
 #21 0x00007fea691f9c2d in g_thread_proxy (data=0x1487cc0) at ../glib/gthread.c:827
 #22 0x00007fea68d93b1a in start_thread (arg=<optimized out>) at pthread_create.c:443
 #23 0x00007fea68e18650 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
2022-05-31 13:22:02 +01:00
Philip Withnall
a2e950a021 2.72.2
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2.72.2
2022-05-30 14:26:47 +01:00
Philip Withnall
60bd2510f2 Merge branch 'backport-2661-uwp-warnings-glib-2-72' into 'glib-2-72'
Backport !2661 “win32appinfo: change log level from warning to debug” to glib-2-72

See merge request GNOME/glib!2691
2022-05-30 12:52:54 +00:00
Ignacio Casal Quinteiro
57739ebd5f win32appinfo: change log level from warning to debug
There is nothing that the user can do anyway and this dumps
lots of warnings without real need.

Closes #2640
2022-05-26 15:30:41 +01:00
Christian Kirbach
92177755ed Update German translation 2022-05-22 21:49:55 +00:00
Charles Monzat
4d6e03745e Update French translation 2022-05-22 08:33:07 +00:00
Philip Withnall
7aef380e6f Merge branch 'backport-2654-task-alloc-performance-glib-2-72' into 'glib-2-72'
Backport !2654 “gtask: use g_strconcat() in g_task_return() only if needed” to glib-2-72

See merge request GNOME/glib!2662
2022-05-18 14:09:00 +00:00
Ignacio Casal Quinteiro
7b140e1909 gtask: use g_strconcat() in g_task_return() only if needed
If the task name is NULL there is no need to allocate the string
since this can be expensive if called very often
2022-05-17 14:18:46 +01:00
Pawan Chitrakar
f48e0a91a5 Update Nepali translation 2022-05-11 07:32:36 +00:00