6468 Commits

Author SHA1 Message Date
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
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
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
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
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
Carlos Garnacho
154f6cafa9 gutf8: Assert that written memory stays in bounds
You may expect funny effects from passing invalid UTF-8, but not
that funny. The assert will probably be a better and more immediate
confirmation of an error than invalid writes under the address of the
string copy.

https://gitlab.gnome.org/GNOME/glib/issues/1863
2019-08-07 23:33:46 +02:00
Philip Withnall
14b087ea18 gmain.c: Fix comment about Y2038 safety of g_get_real_time()
This comment was correct until commit adf1f98f62, when the `GTimeVal`
which the result was put into (introducing the Y2038-unsafety) was
dropped.

The adjustment and scaling of the `FILETIME` should not make it
Y2038-unsafe: the maximum `FILETIME` is 2^64-1. Subtracting the epoch
adjustment and dividing by 10 gives the timestamp 1833029933770955161,
which is in June 58086408216 (at just after 3am UTC). I think that’s
enough time to be going on with.

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

Helps: #1438
2019-07-29 12:27:29 +01:00
Philip Withnall
2d62503fb0 gdatetime: Stop using deprecated g_get_current_time()
This requires some reworking of the internal g_date_time_new_from_unix()
function, since it previously operated in seconds, which wasn’t high
enough resolution — the g_get_current_time() code path used to operate
in microseconds.

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

Helps: #1438
2019-07-29 12:27:29 +01:00
Philip Withnall
2df27e3416 tests: Ignore deprecated functions in a few main loop and timer tests
Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1438
2019-07-29 12:27:29 +01:00
Philip Withnall
2ed76969d0 tests: Ignore deprecated functions in parts of GDateTime tests
Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1438
2019-07-29 12:27:29 +01:00
Philip Withnall
82e3e109dd glib: Stop using g_get_current_time() in various places
Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1438
2019-07-29 12:27:29 +01:00
Philip Withnall
c0f958de5b glib: Stop mentioning deprecated g_get_current_time() in docs
Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1438
2019-07-29 12:27:29 +01:00