6627 Commits

Author SHA1 Message Date
Nirbheek Chauhan
e589477202 Merge branch 'root-test-fix' into 'master'
tests: Fix skipping mkdir-with-parents-permission test

See merge request GNOME/glib!1080
2019-09-10 06:42:36 +00:00
Philip Withnall
f02c6eb514 giochannel: Clarify type of GSource callback in documentation
This should clarify questions like
https://stackoverflow.com/q/57807738/2931197.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-09-06 10:49:39 +01:00
Philip Withnall
df647a583d tests: Fix a couple of static analysis warnings in autoptr tests
The static analyser can’t yet work out how `g_autofree` works, so
disable those tests.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1767
2019-09-05 14:17:02 +01:00
Philip Withnall
0b4162e714 build: Disable dtrace probes under static analysis
The macros for the probes confuse the static analyser, and are often
called with arguments which the analyser things shouldn’t be used any
more (for example, the address of a block of memory which has just been
freed).

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1767
2019-09-05 14:16:58 +01:00
Philip Withnall
18a232be89 glib: Various minor scan-build fixes
These squash various warnings from `scan-build`. None of them are
legitimate bugs, but some of them do improve code readability a bit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1767
2019-09-05 13:51:27 +01:00
Philip Withnall
3e6fe8cd27 Merge branch 'fix-sizeof-check' into 'master'
garray: Fix reference to GLIB_SIZEOF_INT

See merge request GNOME/glib!1084
2019-09-02 15:17:23 +00:00
Alexander Larsson
4f5a2c19e4 garray: Fix reference to GLIB_SIZEOF_INT
This doesn't ever get set. SIZEOF_INT is set though, so use that instead.
2019-09-02 16:05:07 +02:00
Sebastian Dröge
daa308dd6e Merge branch '487-ci-memcheck' into 'master'
Add CI job for running tests under Valgrind

Closes #487

See merge request GNOME/glib!169
2019-09-02 13:52:35 +00:00
Philip Withnall
39052a1cfc tests: Fix some minor memory leaks in tests
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-09-02 14:16:33 +01:00
Philip Withnall
e8ea2aebe7 gerror: Add a docs paragraph about not displaying errors verbatim in UI
It’s confusing and often doesn’t help the user. Match the error code and
come up with a more UI-appropriate error message.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-09-02 14:16:33 +01:00
Philip Withnall
2118a8f73b tests: Fix skipping mkdir-with-parents-permission test
If the user has `CAP_DAC_OVERRIDE` or similar (for example, if running
the tests as root), the `mkdir-with-parents-permission` test is skipped.

The check for `CAP_DAC_OVERRIDE` was by creating a subdirectory of the
test directory. That subdirectory, however, was never removed, which
caused a ‘directory not empty’ error when trying to delete the test
directory.

Fix that by correctly deleting the subdirectory if skipping the test.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-09-02 13:35:44 +01:00
Emmanuele Bassi
4a089f9227 Merge branch 'ossfuzz-16101-iso8601-parsing' into 'master'
Improve ISO 8601 parsing by GDateTime

See merge request GNOME/glib!1017
2019-09-02 11:19:04 +00:00
Philip Withnall
b3b6830d9a Merge branch 'wip/lantw/gthread-set-thread-name-on-bsd' into 'master'
gthread: Set thread name on *BSD

Closes #1761

See merge request GNOME/glib!1072
2019-09-02 11:10:16 +00:00
Aurélien Zanelli
f178d1bc27 goption: add sanity check to input parameters
To avoid dereferencing bad pointers.

Closes issue #1057
2019-08-30 01:07:58 +02:00
Ting-Wei Lan
f489b6f922 gthread: Set thread name on *BSD
Add support for setting thread name on FreeBSD, DragonFlyBSD, OpenBSD,
and NetBSD.

Fixes https://gitlab.gnome.org/GNOME/glib/issues/1761
2019-08-30 01:29:04 +08:00
Matthew Waters
6971528f65 gmacros: mark functions generated by autoptr macros as unused
clang will warn with -Wunused-function if the g_autoptr macros are
ever used inside a .c file.  This would break a lot of -Werror builds
with clang.

Mark such functions as explicitly unsed so clang will not warn about
them.
2019-08-28 18:08:29 +10:00
Nirbheek Chauhan
e0e4968dca Merge branch 'allow_NULL_argument_to_parse_strv' into 'master'
GOption: Allow NULL arguments to parse_strv

Closes #873

See merge request GNOME/glib!1064
2019-08-27 13:17:39 +00:00
Christian Persch
9d513beeca GOption: Allow NULL arguments to parse_strv
Close issue #873
2019-08-27 14:44:29 +02:00
Philip Withnall
29388470f8 Merge branch 'easy-uwp-patches' into 'master'
Some (probably) easy uwp patches

See merge request GNOME/glib!1057
2019-08-26 20:18:45 +00:00
Nirbheek Chauhan
db3e0c256d glib: Don't call MessageBox() when building for UWP
However, it's fine to call it when building for the debug target
(which uses the debug CRT and hence sets -D_DEBUG), so let's keep that
around.

The Windows App Certification Kit only runs on apps built in release
mode.
2019-08-27 00:17:29 +05:30
Philip Withnall
d196bfa4a4 glib: Mark various macros as available in certain versions of GLib
These macros wrap functions which were only introduced in certain
versions of GLib. The functions are correctly marked as introduced in
those versions, but the macros aren’t, which can result in not getting
appropriate deprecation warnings if you’re using those APIs when you
have said you’re targeting older GLib versions using
`GLIB_VERSION_MAX_ALLOWED`.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Closes: #1860
2019-08-26 18:50:16 +03:00
Nirbheek Chauhan
fe01e81326 gutils: Remove dead code used for Windows SDK versions
We require a newer SDK version now, so this is not needed.
Specifically, we set _WIN32_WINNT to 0x0601, which sets our SDK
requirement to Windows 7+, and this code is only needed for MSVC 5.0,
which is ancient.
2019-08-26 19:46:59 +05:30
Emmanuele Bassi
9c34be6972 Merge branch 'error-docs' into 'master'
gerror: Add a docs paragraph about not displaying errors verbatim in UI

See merge request GNOME/glib!1054
2019-08-26 13:47:58 +00:00
Philip Withnall
fba54eaf59 gerror: Add a docs paragraph about not displaying errors verbatim in UI
It’s confusing and often doesn’t help the user. Match the error code and
come up with a more UI-appropriate error message.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-26 14:46:55 +03:00
Philip Withnall
0fba8f671c Merge branch 'meson-printf-cleanup' into 'master'
meson: small printf check cleanups

See merge request GNOME/glib!1032
2019-08-26 11:08:07 +00:00
Philip Withnall
0d54f00317 Merge branch 'gbacktrace_dup2_proper_handling' into 'master'
glib/gbacktrace.c: Handling properly the dup(stderr) call

Closes #1880

See merge request GNOME/glib!1055
2019-08-26 11:05:28 +00:00
Emmanuel Fleury
1e3b1eb111 glib/gbacktrace.c: Handling properly the dup(stderr) call
If the dup(stderr) returns '-1' (an error occured), then the program
shouldn't call a 'close(stderr); dup(old_err);' after the exec() failed.

Fix issue #1880
2019-08-26 10:49:58 +02:00
Philip Withnall
c21892ee13 Merge branch 'optimize_g_nearest_pow' into 'master'
Optimize g_nearest_pow() function in glib/garray.c

Closes #83

See merge request GNOME/glib!1030
2019-08-26 06:21:53 +00:00
Jeffrey Stedfast
2f8c61314c Optimize g_nearest_pow() function in glib/garray.c
Closes issue #83
2019-08-25 18:37:02 +02:00
Philip Withnall
d4857047b3 Merge branch 'diagnostic-pragma-fix' into 'master'
tests: Fix a pragma warning on FreeBSD

See merge request GNOME/glib!1050
2019-08-25 09:07:48 +00:00
Дилян Палаузов
512655aa12 minor typos in the documentation (a/an) 2019-08-24 19:14:05 +00:00
Philip Withnall
c178c9734c Merge branch 'static_analysis_2_40_patches' into 'master'
Static analysis 2 40 patches

Closes #905

See merge request GNOME/glib!1042
2019-08-24 14:22:38 +00:00
Colin Walters
651e3b05d8 glib/goption.c: Replace precondition with assertion
A static analysis run noted that we weren't freeing the cmdline in the
error path here.  We can just make this an assertion instead; I just
checked the kernel code, and it just usees a seq_printf() here which
will NUL terminate.
2019-08-24 15:55:49 +02:00
Philip Withnall
f9a24ced63 tests: Fix a pragma warning on FreeBSD
This fixes the following warning, by making the compiler checks for the
`pop` match those for the `push`:
```
[221/1124] Compiling C object 'glib/tests/d796b50@@mem-overflow@exe/mem-overflow.c.o'.
../glib/tests/mem-overflow.c:204:24: warning: pragma diagnostic pop could not pop, no matching push [-Wunknown-pragmas]
 #pragma GCC diagnostic pop
```

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-24 15:49:48 +03:00
Philip Withnall
efe5b70192 gvariant: Handle empty serialisations in get_child_value()
When g_variant_get_child_value() is called for a child whose
serialisation is an empty byte string (which is possible), `bytes_data`
will be non-`NULL`, but `data` may be `NULL`. This results in a negative
offset being passed to `g_bytes_new_from_bytes()`, and a critical
warning.

So if `data` is `NULL`, set it to point to `bytes_data` so the offset is
calculated as zero. The actual value of the offset doesn’t matter, since
in this situation the size is always zero. An offset of zero is never
going to cause problems.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Fixes: #1865
2019-08-24 15:05:17 +03:00
Philip Withnall
07beaa67b6 Merge branch 'wip/smcv/mips-sigaction' into 'master'
cond test: Don't make assumptions about struct sigaction member order

See merge request GNOME/glib!1036
2019-08-22 08:42:45 +00:00
Philip Withnall
9564c6541b tests: Add ISO 8601 parsing tests for g_date_time_new_from_iso8601()
These are copies of the existing tests for `g_time_val_from_iso8601()`,
with the test strings which fail for `GDateTime` commented out. This is
OK, as it’s documented as only accepting a subset of ISO 8601 (and for
some of the test vectors, it’s debatable whether they’re actually valid
ISO 8601, depending on how you interpret the valid bounds of timezone
offsets — some interpretations of the available documentation would say
that timezone offsets should never be ≥24 hours or ≥60 minutes).

There is one test string which is not accepted by
`g_time_val_from_iso8601()` but which is accepted by `GDateTime`, as
`g_date_time_new_from_iso8601()` actually accepts RFC 3339, which is a
little more liberal than ISO 8601. Fun times. See
https://tools.ietf.org/html/rfc3339#section-5.6.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-21 23:36:48 +03:00
Philip Withnall
4ddabfc612 gdatetime: Avoid an assertion failure when parsing some ISO 8601 dates
Some malformed ISO 8601 date/time strings were causing an assertion
failure when passed to `g_date_time_new_from_iso8601()`, due to a
mismatch between the bounds checking of timezone offsets in `GDateTime`
and `GTimeZone`. Fix that and add a unit test for it.

oss-fuzz#16101

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-21 23:36:48 +03:00
Philip Withnall
5f5f98f3d0 Merge branch 'test-bug-base' into 'master'
Relax use of g_test_bug() to not require g_test_bug_base() to be called first

See merge request GNOME/glib!1044
2019-08-21 17:21:52 +00:00
Philip Withnall
9fc745db07 tests: Drop unnecessary usage of g_test_bug_base("")
See the previous commit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-21 19:42:27 +03:00
Philip Withnall
e7b857a44a gtestutils: Allow g_test_bug() to be used without g_test_bug_base()
Since we transitioned from Bugzilla to GitLab, we have two forms of bug
references in the GLib source code: old (but still relevant) Bugzilla
links, and newer GitLab links. We can’t use a single base for the two,
so have to either build incorrect URIs, or provide the full URI in
g_test_bug().

It’s always seemed a bit of an over-optimisation to provide the bug base
separately from the bug ID, so relax the assertions and documentation
around g_test_bug_base() so that g_test_bug() can be used on its own.

The old usage patterns are still supported unchanged.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-21 19:41:05 +03:00
Christoph Reiter
26f7104d79 meson: small cleanup for printf checks
Instead of duplicating checks add a use_system_printf meson variable and
macro and use them everywhere.
2019-08-20 17:19:26 +02:00
Nirbheek Chauhan
a5f0e648d3 Merge branch 'win32-no-sys-printf' into 'master'
win32: don't assume the format specifier for the stdlib printf/scanf like functions

See merge request GNOME/glib!1033
2019-08-20 14:08:58 +00:00
Nirbheek Chauhan
6ea818fe5b Merge branch 'meson-good-printf-fixes' into 'master'
meson: build gnulib if printf isn't good enough

See merge request GNOME/glib!1031
2019-08-19 21:22:47 +00:00
Simon McVittie
18ae2b3c78 cond test: Don't make assumptions about struct sigaction member order
On x86 (and apparently most other Linux architectures), the union
with the signal handler is the first member, but on MIPS Linux,
the first struct member is sa_flags (possibly done to be compatible
with IRIX). Zero out the struct and fill in the field we want by name.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-08-13 08:41:09 +01:00
Simon McVittie
941c0bd606 glib/tests/fileutils: Add a reproducer for #1852
This test passes on the glib-2-60 branch, and failed before
merging !1027.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-08-13 08:37:40 +01:00
Philip Withnall
6d7143e91d Merge branch 'wip/carlosg/utf8-strreverse-invalid-writes' into 'master'
gutf8: Assert that written memory stays in bounds

See merge request GNOME/glib!1026
2019-08-12 10:39:11 +00:00
Christoph Reiter
6095b9bd3c win32: don't assume the format specifier for the stdlib printf/scanf like functions
When using the mingw printf shims for C99 compat the msvc format specifiers don't work
and the build fails.

Ideally we would use glib functions which abstract this away, but in the error handler context
we shouldn't call back into glib. And for scanf we don't have a glib wrapper.

Instead call the "secure" versions provided by the win32 API (_snprintf_s/fprintf_s/sscanf_s)
which mingw doesn't replace.
2019-08-10 21:56:33 +02:00
Christoph Reiter
6e1ceb1a9d meson: build gnulib if printf isn't good enough
We currently check in multiple places if vsnprintf/snprintf/printf are
good and if not use gnulib. This case was not checking for printf which
made the build fail with recent mingw-w64 where snprintf was improved to
pass all glib checks but printf still doesn't.
2019-08-10 16:03:44 +02:00
Carlos Garnacho
3a4a665083 gfileutils: Fix error propagation for other than ENOENT
Commit 6f55306e04e5 unintendedly broke error handling for other
error conditions than ENOENT along the path, like EPERM. It wanted
to ignore ENOENT on all elements except the last in the path, but
in doing that it ignored any other error that might happen on the
last element.

https://gitlab.gnome.org/GNOME/glib/issues/1852
2019-08-08 02:32:46 +02:00