Simon McVittie
f6e13753aa
fileutils: Make some sample code detect symlinks as intended
...
The sample code here wasn't a race-free version of the race-susceptible
anti-pattern, because it would have dereferenced a symlink automatically.
Fixes: 293b4923
"Clarify g_file_test() docs about TOCTOU bugs"
Signed-off-by: Simon McVittie <smcv@collabora.com>
2023-02-10 13:06:04 +00:00
Philip Withnall
d5bf03cbcb
Merge branch 'wip/smcv/redundant-type-assertions' into 'main'
...
Revert "glib-init: Add more static assertions for gintptr, guintptr"
See merge request GNOME/glib!3263
2023-02-09 23:03:30 +00:00
Simon McVittie
73c91ef799
Revert "glib-init: Add more static assertions for gintptr, guintptr"
...
On closer inspection, these are redundant with stricter assertions that I
added in commit bd1e2a98
"glib-init: Statically assert more facts about
standard types", which assert that sizeof (gintptr) == sizeof (void *).
As far as I can tell, a sufficiently pedantic interpretation of Standard
C doesn't actually require (u)intptr_t to be the same size as a pointer:
it only requires that pointers can be losslessly stored in a (u)intptr_t,
which a sufficiently pathological ABI could implement by having (for
example) 32-bit pointers and a 64-bit uintptr_t just to troll us. However,
I'm fairly confident that no practically useful ABI would do this,
and certainly nobody has complained about this assertion since 2020.
Similarly, Standard C might permit an ABI where 64-bit pointers have the
first 32 bits always-zero and therefore storing the remaining bits in a
32-bit uintptr_t is lossless, but again, that would be pathological.
This reverts commit da3fc59544
.
Signed-off-by: Simon McVittie <smcv@collabora.com>
2023-02-09 19:08:08 +00:00
Emmanuele Bassi
816b35df67
Merge branch 'ebassi/pathbuf' into 'main'
...
Add GPathBuf
See merge request GNOME/glib!3216
2023-02-09 13:55:26 +00:00
Emmanuele Bassi
fcdbd7f9bd
tests: Add GPathBuf to the g_auto suite
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
7e62d01053
tests: Add PathBuf.new_from_path() coverage
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
d0ee88078b
doc: Clarify g_path_buf_to_path()
...
The returned path is built on demand.
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
a05fda9990
Move GPathBuf tests into their own file
...
Keep the fileutils tests related to the gfileutils.h API.
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
280649fb82
docs: Clarify the path construction functions
...
Use the same wording for functions that belong in the same family, and
link to the newly introduced GPathBuf API.
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
314d62f302
doc: Make file utils docblocks render nicely with gi-docgen
...
Do not use 4-spaces indentation for return and argument descriptions, to
avoid getting rendered as preformatted blocks.
Annotate code examples with their language, for syntax highlighting.
Isolate the first paragraph to give a short description.
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
293b492334
Clarify g_file_test() docs about TOCTOU bugs
...
Do not show just what not to do: show what to do instead, otherwise
people won't know how to fix their code.
Make sure to link to an explanation of the TOCTOU class of bugs;
Wikipedia is as good a place as any.
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
b5a3297dca
docs: Add GPathBuf to the API reference
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
2015723a4f
Add tests for GPathBuf
2023-02-09 13:36:51 +00:00
Emmanuele Bassi
f60f432b6c
Add GPathBuf
...
GPathBuf is a path buffer type that can be used to build paths
programmatically, using it as a stack.
2023-02-09 13:36:51 +00:00
Marco Trevisan
5821425e11
Merge branch 'underspecified-dep' into 'main'
...
fix underspecified dependencies on generated headers
See merge request GNOME/glib!3260
2023-02-07 14:35:52 +00:00
Marco Trevisan
9201a20276
Merge branch 'th/no-mutex-in-g-print' into 'main'
...
gmessages: use g_atomic_pointer to access handlers for g_print()/g_printerr()
See merge request GNOME/glib!3259
2023-02-07 14:32:15 +00:00
Thomas Haller
4d7f66f214
gmessages: use g_atomic_pointer to access handlers for g_print()/g_printerr()
...
It seems unnecessary to use the mutex to get/set a single pointer.
2023-02-07 13:16:07 +01:00
Eli Schwartz
740440774a
fix underspecified dependencies on generated headers
...
Since gmodule-visibility.h is now a custom target and produced at
buildtime, it might not always exist in time for use in other source
files. This was the case for gio-inotify.
Add it as an additional source file to ensure in-time generation.
2023-02-06 23:00:04 -05:00
Philip Withnall
4177164fd2
Merge branch 'wip/pwithnall/revert-freebsd-ci' into 'main'
...
Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule"
See merge request GNOME/glib!3258
2023-02-06 16:52:11 +00:00
Philip Withnall
e6132f2322
Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule"
...
This reverts commit 163ebdc6c2
.
The FreeBSD CI runner is back again.
See https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/601#note_1658477
2023-02-06 14:58:47 +00:00
Philip Withnall
6ba1627fe6
Merge branch 'g-atomic-array-alignment' into 'main'
...
GAtomicArray: Ensure metadata does not misalign the payload
See merge request GNOME/glib!3242
2023-02-06 14:08:06 +00:00
Philip Withnall
361745149f
Merge branch 'msort-cheri' into 'main'
...
Allow using msort_r CHERI-enabled architectures
See merge request GNOME/glib!3243
2023-02-06 14:04:18 +00:00
Philip Withnall
bd8b756853
Merge branch 'gtype-use-sized-free' into 'main'
...
Revert "gtype: Use the system allocator on UNIX" and use g_free_sized instead
See merge request GNOME/glib!3251
2023-02-06 14:00:38 +00:00
Marco Trevisan
5c34cf3dbb
Merge branch 'ebassi/no-preallocs' into 'main'
...
Remove n_preallocs field from InstanceData
See merge request GNOME/glib!3256
2023-02-06 13:33:16 +00:00
Emmanuele Bassi
8f92f742b9
Remove n_preallocs field from InstanceData
...
The GTypeInfo.n_preallocs field has been ignored since GLib 2.10, but it
hasn't been removed from the internal instance data representation.
2023-02-04 16:55:30 +01:00
Michael Catanzaro
35170735de
Merge branch 'force-non-null-gslice-free' into 'main'
...
gslice: Do not try to memset-0 NULL a pointer
Closes #2908
See merge request GNOME/glib!3253
2023-02-03 23:19:43 +00:00
Marco Trevisan (Treviño)
893b86b939
gslice: Mark memory arguments and return values as nullable when it's the case
...
GSlice can handle NULL arguments or return NULL values, but we did not
properly mark them all the times.
2023-02-03 16:28:51 +01:00
Marco Trevisan (Treviño)
6af6f3eb9b
gslice: Do not try to memset-0 NULL a pointer
...
According to the docs, g_slice_free1() is supposed to do nothing if
@mem_block is NULL, but we still try to zero it in case we're using
g_mem_gc_friendly.
So avoid this case.
Closes : #2908
2023-02-03 16:28:37 +01:00
Marco Trevisan (Treviño)
69e9ba80e2
gtype: Use g_malloc0 and g_free_sized to allocate and free memory
...
We've a sized free now, so we can just use it!
2023-02-03 11:38:00 +01:00
Marco Trevisan (Treviño)
ce1cba0884
Revert "gtype: Use the system allocator on UNIX"
...
Since commit 45b5a6c0 GSlice is just a wrapper to g_malloc0/g_free, so
there's no point to use a different implementation for UNIXes vs
windows.
This reverts commit 3b7af4dd5d
.
2023-02-03 11:38:00 +01:00
Marco Trevisan
95cbff0fd2
Merge branch 'free-sized' into 'main'
...
gmem: Add g_free_sized() and g_aligned_free_sized()
See merge request GNOME/glib!3231
2023-02-03 10:01:35 +00:00
Philip Withnall
548d917f35
Merge branch 'gcc13-warning-fix' into 'main'
...
timezone: Fix a compiler warning
See merge request GNOME/glib!3248
2023-02-03 08:02:57 +00:00
Philip Withnall
b3b459107a
Merge branch 'fix-inline-warnings' into 'main'
...
gstring: Avoid warnings from inline functions
See merge request GNOME/glib!3249
2023-02-03 07:57:40 +00:00
Matthias Clasen
d9f8d73be2
gstring: Avoid warnings from inline functions
...
The current code for g_string_append_c_inline generates
warnings when used, with -Wnull-dereference. Avoid that.
2023-02-03 00:36:53 +00:00
Matthias Clasen
cbb2ca8c4a
timezone: Fix a compiler warning
...
gcc 13 complains that last_explicit_transition_time
may be used uninitialized.
2023-02-03 00:36:21 +00:00
Philip Withnall
964ecf5ec9
Merge branch 'wip/pwithnall/freebsd-ci-again' into 'main'
...
ci: Temporarily only run the FreeBSD 13 CI on a schedule
See merge request GNOME/glib!3250
2023-02-03 00:30:14 +00:00
Philip Withnall
163ebdc6c2
ci: Temporarily only run the FreeBSD 13 CI on a schedule
...
Rather than on every commit, because the CI runner is currently broken:
https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/601 .
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-02-03 00:13:53 +00:00
Philip Withnall
622e1d8c83
Merge branch 'wip/ernestask/converter-null-out' into 'main'
...
gio: converter: Forbid null out arguments
See merge request GNOME/glib!3245
2023-02-02 22:39:57 +00:00
Ernestas Kulik
e0976efee9
gio: converter: Forbid null out arguments
...
Currently, inbuf_size and outbuf_size are not documented as not
nullable, but they are expected to be so, which might lead to unexpected
crashes. Moreover, outbuf itself is also expected to not be null, so
this commit adds the appropriate GI annotations and early returns on
failed preconditions.
2023-02-02 21:25:56 +02:00
Ekaterine Papava
f6c6171c08
Update Georgian translation
2023-02-02 18:55:40 +00:00
Philip Withnall
97ebd794a7
gslice: Use g_free_sized() instead of g_free()
...
If libc supports `free_sized()`, this could mean that freeing slices is
a bit more performant. If not, it falls back to using `free()`.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-02-02 12:30:59 +00:00
Philip Withnall
329843f682
gmem: Add g_free_sized() and g_aligned_free_sized()
...
These wrap `free_sized()` and `free_aligned_sized()`, which are present
in C23[1]. This means that user code can start to use them without checking
for C23 support everywhere first.
It also means we can use them internally in GSlice to get a bit of
performance for the code which still uses it.
See https://en.cppreference.com/w/c/memory/free_aligned_sized and
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2699.htm .
[1]: Specifically, section 7.24.3.4 of the latest C23 draft at
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3088.pdf .
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-02-02 12:30:59 +00:00
Fran Dieguez
c88e9e1f5c
Update Galician translation
2023-02-01 21:46:54 +00:00
Marco Trevisan
fe2de360de
Merge branch 'cxx-leak' into 'main'
...
tests: Fix a minor leak in the cxx string append tests
See merge request GNOME/glib!3247
2023-02-01 16:29:04 +00:00
Marco Trevisan
155e44652e
Merge branch 'gstring-free-warning' into 'main'
...
Make g_string_free (_, FALSE) warn on unused result
See merge request GNOME/glib!3226
2023-02-01 16:28:02 +00:00
Marco Trevisan
151ca8d28d
Merge branch 'gdbus-test-leak' into 'main'
...
tests: Fix a few minor leaks in gdbus-example-peer
See merge request GNOME/glib!3246
2023-02-01 16:24:57 +00:00
Kukuh Syafaat
76639a3620
Update Indonesian translation
2023-02-01 02:44:58 +00:00
Philip Withnall
b3389b66d6
tests: Fix a minor leak in the cxx string append tests
...
See https://gitlab.gnome.org/GNOME/glib/-/jobs/2547640
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Helps: #2904
2023-01-31 11:52:11 +00:00
Philip Withnall
bd5e57ef17
tests: Fix a few minor leaks in gdbus-example-peer
...
One leak spotted by the Coverity, the others found via valgrind.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Coverity CID: #1504322
2023-01-31 11:44:44 +00:00
Aleksandr Melman
f499e37979
Update Russian translation
2023-01-29 22:11:03 +00:00