Commit Graph

24014 Commits

Author SHA1 Message Date
Philip Withnall
535653eec1 gstrfuncs: Document that g_ascii_strncasecmp() stops at first nul byte
The documentation wasn’t clear about whether it did that, or ignored nul
bytes and continued to `n` bytes regardless.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-02 09:38:36 +00:00
Philip Withnall
c29601818f gkeyfile: Eliminate strcmp()s when looking up a group node
Rather than looking for the group node by comparing each name in the
linked list of `GKeyFileGroup` instances, look up the `GKeyFileGroup` in
the hash table, then look up its `GList` node by pointer.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-02 09:38:36 +00:00
Philip Withnall
cba8d59737 gkeyfile: Eliminate unnecessary allocations when setting booleans
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-02 09:38:36 +00:00
Philip Withnall
f71db39284 gkeyfile: Avoid an unnecessary strcmp()
As the groups are disambiguated by name via the `groups` hash table,
there is guaranteed to be at most one `GKeyFileGroup` instance per group
name, which means they can be compared for equality by `GKeyFileGroup`
pointer, rather than needing a `strcmp()`.

This speeds up key file parsing in all cases.

oss-fuzz#31796

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-02 09:38:36 +00:00
Philip Withnall
960030712d gkeyfile: Add a length argument to is_key_name()
This allows it to be called on a substring of a larger string, without
having to allocate a nul-terminated copy of the substring with
`g_strndup()` before knowing that the key name is actually valid.

This speeds up parsing of highly invalid key files, but doesn’t affect
performance in the normal case of a valid key file.

oss-fuzz#31796

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-02 09:38:33 +00:00
Philip Withnall
46fe9639b9 gkeyfile: Make various parsing variables const
All these `gchar *`s are used as moving pointers into strings, being
incremented as the strings are parsed. They are never modified, so can
be `const`. This doesn’t speed anything up, but does allow removing some
casts and slightly improving type safety.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-01 18:16:27 +00:00
Philip Withnall
e4bb09d8ec Merge branch 'fix-win32-app-info-registry-key-assert' into 'main'
GWin32AppInfo: Do not assert about successful open'ing of registry keys

See merge request GNOME/glib!2260
2021-11-01 10:41:31 +00:00
Michael Catanzaro
98e0789fea Merge branch 'weak-refs-docs' into 'main'
gobject: Clarify behaviour of adding weak refs during disposal

See merge request GNOME/glib!2255
2021-10-27 23:37:22 +00:00
Goran Vidović
2f4e911afd Update Croatian translation 2021-10-27 17:14:32 +00:00
Goran Vidović
bff13ab0ef Update Croatian translation 2021-10-27 17:11:18 +00:00
Goran Vidović
de720c99cf Update Croatian translation 2021-10-27 17:05:36 +00:00
Philip Withnall
045a6fb771 Merge branch 'fix_g_win32_app_info_launch_internal_signedness_warning' into 'main'
Fix cast from pointer to integer of different size warning in gio/gwin32appinfo.c

See merge request GNOME/glib!2292
2021-10-26 11:48:49 +00:00
Emmanuel Fleury
8444dc5695 Fix cast from pointer to integer of different size warning in gio/gwin32appinfo.c 2021-10-26 11:48:48 +00:00
Goran Vidović
10f7a0e59c Update Croatian translation 2021-10-25 19:47:33 +00:00
Goran Vidović
f9158d8216 Update Croatian translation 2021-10-25 19:44:58 +00:00
Goran Vidović
6419033072 Update Croatian translation 2021-10-25 19:38:04 +00:00
Rūdolfs Mazurs
4f6c666e5f Update Latvian translation 2021-10-25 16:40:13 +00:00
Philip Withnall
7fde5a1f9f Merge branch 'gio-doc-relative' into 'main'
gio: document GFile API when relative path is absolute

See merge request GNOME/glib!2305
2021-10-25 12:25:19 +00:00
Emmanuele Bassi
0c5c55bb11 Merge branch 'datetime-typo-fix' into 'main'
tests: Fix a typo in a test message in gdatetime.c

See merge request GNOME/glib!2310
2021-10-25 12:11:17 +00:00
Marc-André Lureau
b26855579c gio: fix GFile doc indentation and nullable annotations
Add missing (nullable), and use 2-space indentation to avoid markdown
pre-formatted blocks when unwanted.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2021-10-25 12:57:13 +01:00
Marc-André Lureau
3a6e8bc887 gio: check the given child name is not an absolute path
As this would have undesirable consequence.

Quoting Philip Withnall:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2305#note_1294729:

  The documentation never said anything about accepting absolute paths,
  so any code which is relying on that is relying on undocumented
  behaviour. We’re allowed to change that.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2021-10-25 12:57:13 +01:00
Marc-André Lureau
1df7c2ea80 gio: document g_file_get_relative_path() with absolute path
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2021-10-25 12:57:13 +01:00
Philip Withnall
ac26e9d780 tests: Fix a typo in a test message in gdatetime.c
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-25 12:56:16 +01:00
Goran Vidović
8f417138bb Update Croatian translation 2021-10-24 19:38:43 +00:00
Philip Withnall
ceb23e9f00 Merge branch 'XDG_RUNTIME_DIR_mkdir' into 'main'
mkdir path specified by XDG_RUNTIME_DIR

See merge request GNOME/glib!2290
2021-10-22 11:23:46 +00:00
Egor Bychin
5484bf1cef gutils: Add a comment specifying reason of omitting g_mkdir 2021-10-22 12:04:13 +01:00
Philip Withnall
464470dd8f Merge branch '2507-file-enumerator-docs' into 'main'
gfileenumerator: Warn if name is not available for get_child()

Closes #2507

See merge request GNOME/glib!2307
2021-10-21 11:58:32 +00:00
Philip Withnall
2602e0f1aa Merge branch 'drop-pamconsole' into 'main'
gunixmounts: Drop references to pamconsole mount option

See merge request GNOME/glib!2306
2021-10-21 11:49:06 +00:00
Philip Withnall
b6424b5ce1 gfileenumerator: Warn if name is not available for get_child()
`standard::name` must be available for `g_file_enumerator_get_child()`
to work. Emit a critical warning and return if it’s not. This is similar
to the existing behaviour in `g_file_enumerator_iterate()`.

Improve the documentation to mention this.

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

Fixes: #2507
2021-10-21 12:23:06 +01:00
Philip Withnall
e508a0a8df gfileenumerator: Upgrade existing warning to critical warning
The code cannot function correctly if the `standard::name` attribute is
not present, so upgrade the existing warning to a critical warning and
return if it fails in `g_file_enumerator_iterate()`.

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

Helps: #2507
2021-10-21 12:23:06 +01:00
Philip Withnall
0630272388 gfileenumerator: Add missing precondition to get_child()
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #2507
2021-10-21 12:23:06 +01:00
Philip Withnall
9b1b04587c gunixmounts: Drop references to pamconsole mount option
It was Red Hat specific when it was introduced in 2004, was never
supported by mount(8) upstream, and was removed entirely in 2008.

It’s confusing for GLib to keep references to it around.

Thanks to Karel Zak for digging up the history of it:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2298#note_1294519

And thanks to Xidorn Quan for looking into it in the first place (see
!2298).

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-21 12:22:54 +01:00
Emmanuele Bassi
422f744367 Merge branch 'fix-win32-warnings' into 'main'
gthread-win32: Remove an unnecessary volatile qualifier

See merge request GNOME/glib!2308
2021-10-21 11:17:40 +00:00
Philip Withnall
ee867a3c63 gthread-win32: Remove an unnecessary volatile qualifier
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-21 12:01:33 +01:00
Philip Withnall
9784f31527 Merge branch 'fix_more_windows_warnings' into 'main'
Fix more windows warnings

See merge request GNOME/glib!2303
2021-10-20 15:30:50 +00:00
Emmanuel Fleury
db5a9d8397 Fix signedness warning in gio/gsocket.c
gio/gsocket.c: In function 'g_socket_get_available_bytes':
gio/gsocket.c:3141:17: warning: comparison of integer expressions of different signedness: 'u_long' {aka 'long unsigned int'} and 'int'
       if (avail == -1)
                 ^~
gio/gsocket.c: In function 'g_socket_send_messages_with_timeout':
gio/gsocket.c:5283:19: warning: comparison of integer expressions of different signedness: 'gint' {aka 'int'} and 'guint' {aka 'unsigned int'}
     for (i = 0; i < num_messages; ++i)
                   ^
gio/gsocket.c:5308:76: warning: operand of ?: changes signedness from 'int' to 'gsize' {aka 'long long unsigned int'} due to unsignedness of other operand
         result = pollable_result == G_POLLABLE_RETURN_OK ? bytes_written : -1;
                                                                            ^~
2021-10-20 17:09:50 +02:00
Emmanuel Fleury
23e9017aff Fix signedness warning in gio/win32/gwinhttpfile.c
gio/win32/gwinhttpfile.c: In function 'g_winhttp_file_query_info':
gio/win32/gwinhttpfile.c:554:13: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long long unsigned int'}
           n == wcslen (content_length))
             ^~
2021-10-19 18:44:38 +02:00
Emmanuel Fleury
a16d6398d7 Fix signedness warning in gio/win32/gwin32fsmonitorutils.c
gio/win32/gwin32fsmonitorutils.c: In function 'g_win32_fs_monitor_handle_event':
gio/win32/gwin32fsmonitorutils.c:107:11: warning: comparison of integer expressions of different signedness: 'GFileMonitorEvent' {aka 'enum <anonymous>'} and 'int'
   if (fme != -1)
           ^~
2021-10-19 18:44:38 +02:00
Emmanuel Fleury
059dc76ae1 Fix signedness warnings in gio/win32/gwinhttpvfs.c
gio/win32/gwinhttpvfs.c: In function 'g_winhttp_vfs_get_file_for_uri':
gio/win32/gwinhttpvfs.c:172:17: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int'
   for (i = 0; i < G_N_ELEMENTS (winhttp_uri_schemes); i++)
                 ^
gio/win32/gwinhttpvfs.c: In function 'g_winhttp_vfs_get_supported_uri_schemes':
gio/win32/gwinhttpvfs.c:210:17: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int'
   for (i = 0; i < G_N_ELEMENTS (winhttp_uri_schemes); i++)
                 ^
2021-10-19 18:44:38 +02:00
Emmanuel Fleury
2f2e021a56 Fix signedness warnings in glib/gwin32.c
glib/gwin32.c: In function 'g_win32_check_windows_version':
glib/gwin32.c:556:32: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'gint' {aka 'const int'}
   if (osverinfo.dwMajorVersion > major)
                                ^
glib/gwin32.c:558:37: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'gint' {aka 'const int'}
   else if (osverinfo.dwMajorVersion == major)
                                     ^~
glib/gwin32.c:560:36: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'gint' {aka 'const int'}
       if (osverinfo.dwMinorVersion > minor)
                                    ^
glib/gwin32.c:562:41: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'gint' {aka 'const int'}
       else if (osverinfo.dwMinorVersion == minor)
                                         ^~
2021-10-19 18:44:38 +02:00
Emmanuel Fleury
6971f4f264 Fix signedness warnings in glib/gtimezone.c
glib/gtimezone.c: In function 'rules_from_windows_time_zone':
glib/gtimezone.c:926:56: warning: comparison of integer expressions of different signedness: 'int' and 'DWORD' {aka 'long unsigned int'}
       for (year = first, i = 0; *rules != NULL && year <= last; year++)
                                                        ^~
glib/gtimezone.c:946:20: warning: comparison of integer expressions of different signedness: 'int' and 'DWORD' {aka 'long unsigned int'}
           if (year > first && memcmp (&regtzi_prev, &regtzi, sizeof regtzi) == 0)
                    ^
glib/gtimezone.c: In function 'set_tz_name':
glib/gtimezone.c:1481:25: error: comparison of integer expressions of different signedness: 'int' and 'guint' {aka 'unsigned int'}
 1481 |   len = *pos - name_pos > size - 1 ? size - 1 : *pos - name_pos;
      |                         ^
glib/gtimezone.c:1481:49: error: operand of '?:' changes signedness from 'int' to 'guint' {aka 'unsigned int'} due to unsignedness of other operand
 1481 |   len = *pos - name_pos > size - 1 ? size - 1 : *pos - name_pos;
      |                                                 ^~~~~~~~~~~~~~~
glib/gtimezone.c: In function 'rules_from_identifier':
glib/gtimezone.c:1553:25: warning: comparison of integer expressions of different signedness: 'int' and 'guint' {aka 'unsigned int'}
           for (i = 0; i < rules_num - 1; i++)
                         ^
2021-10-19 18:44:20 +02:00
Philip Withnall
85969ce3da Merge branch 'main' into 'main'
#1331: buffer overflow fix

Closes #1331

See merge request GNOME/glib!2189
2021-10-19 15:38:13 +00:00
Mark Weaver
995823b9d9 #1331: buffer overflow fix 2021-10-19 15:38:13 +00:00
Emmanuel Fleury
c9b4b0e765 Fix signedness warning in glib/gthread-win32.c
glib/gthread-win32.c: In function 'g_system_thread_new':
glib/gthread-win32.c:507:37: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'int'
   if (ResumeThread (thread->handle) == -1)
                                     ^~
2021-10-19 00:30:50 +02:00
Philip Withnall
e212c5a28d Merge branch 'fix_more_windows_warnings' into 'main'
Fix windows warnings

See merge request GNOME/glib!2294
2021-10-18 14:48:18 +00:00
Emmanuel Fleury
928be8b8bc Fix signedness warnings in glib/gstdio.c
glib/gstdio.c: In function '_g_win32_stat_utf8':
glib/gstdio.c:763:45: warning: comparison of integer expressions of different signedness: 'gsize' {aka 'long long unsigned int'} and 'long long int'
       (g_path_is_absolute (filename) && len <= g_path_skip_root (filename) - filename))
                                             ^~
glib/gstdio.c: In function 'g_win32_readlink_utf8':
glib/gstdio.c:896:15: warning: comparison of integer expressions of different signedness: 'glong' {aka 'long int'} and 'gsize' {aka 'long long unsigned int'}
   if (tmp_len > buf_size)
               ^
2021-10-18 14:23:31 +02:00
Emmanuel Fleury
b89967a14d Fix signedness warnings in glib/gpoll.c
glib/gpoll.c: In function 'poll_rest':
../glib/gpoll.c:165:22: warning: comparison of integer expressions of different signedness: 'gint' {aka 'int'} and 'unsigned int'
       if (timeout_ms == INFINITE)
                      ^~
glib/gpoll.c:219:18: warning: comparison of unsigned expression >= 0 is always true
   else if (ready >= WAIT_OBJECT_0 && ready < WAIT_OBJECT_0 + nhandles)
                  ^~
glib/gpoll.c: In function 'poll_single_thread':
glib/gpoll.c:281:44: warning: comparison of integer expressions of different signedness: 'gint' {aka 'int'} and 'unsigned int'
       if (retval == 0 && (data->timeout_ms == INFINITE || data->timeout_ms > 0))
                                            ^~
glib/gpoll.c: In function 'g_poll':
glib/gpoll.c:477:52: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'int'
         retval = retval == -1 ? -1 : thread_retval == -1 ? -1 : retval + thread_retval;
                                                    ^~
glib/gpoll.c:477:60: warning: operand of ?: changes signedness from 'int' to 'long unsigned int' due to unsignedness of other operand
         retval = retval == -1 ? -1 : thread_retval == -1 ? -1 : retval + thread_retval;
                                                            ^~
glib/gpoll.c:477:33: warning: operand of ?: changes signedness from 'int' to 'long unsigned int' due to unsignedness of other operand
         retval = retval == -1 ? -1 : thread_retval == -1 ? -1 : retval + thread_retval;
                                 ^~
2021-10-18 14:23:26 +02:00
Philip Withnall
aa729f0bbf Merge branch 'modern-nm-properties-changed' into 'main'
gio: Stop using deprecated NM PropertiesChanged signal

Closes #2505

See merge request GNOME/glib!2291
2021-10-18 12:15:51 +00:00
Philip Withnall
6e2de8fcb5 Merge branch 'msvc-asan-build' into 'main'
glib-private: Fix MSVC build with AddressSanitizer

See merge request GNOME/glib!2293
2021-10-18 12:09:44 +00:00
Philip Withnall
68295cb2fb Merge branch 'utf16-to-utf8-docs' into 'main'
gutf8: Document that out args from g_utf16_to_utf8() are non-negative

See merge request GNOME/glib!2295
2021-10-18 11:58:54 +00:00