Commit Graph

25814 Commits

Author SHA1 Message Date
Philip Withnall
c8ea8cafd1 Merge branch 'meson_fixes' into 'main'
meson: Check rres.compiled() before calling rres.returncode()

See merge request GNOME/glib!2642
2022-05-09 12:08:10 +00:00
Sebastian Dröge
91407cd7ef Merge branch 'use-ptrdiff' into 'main'
Cast to ptrdiff_t instead of subtracting by null

See merge request GNOME/glib!2631
2022-05-07 05:46:56 +00:00
TestingPlant
b4b2f75bfd Cast to guintptr instead of subtracting by null
Subtraction by a null pointer is undefined behavior, so it's been
replaced with a cast to guintptr.
2022-05-07 02:01:19 +00:00
illiliti
07fb19ee6e meson: Check rres.compiled() before calling rres.returncode()
As per meson spec, returncode() produces unspecified data if
compiled() == false. Check compiled() first to avoid relying
upon unspecified data.

In addition, muon -- an implemetation of meson written in C goes
further and forbids returning unspecified data. This is a good
decision, but also makes it harder to support applications which
wrongly use meson API. Therefore, application needs to be fixed.
2022-05-07 00:20:33 +03:00
Philip Withnall
cc79d5bc7f ci: Explicitly specify Python installation path on Windows
Meson used to try and guess at the Python path. While this worked fine
for GLib before, it probably didn’t work 100% for other projects, so
Meson have made it an explicit option.

Set that option with the Python path used on the Windows CI machines.

This fixes a Meson warning with Meson >0.60.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:55:28 +01:00
Philip Withnall
f2d24f0b13 ci: Bump CI image versions for new Meson and libpcre versions
As per the previous few commits.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:55:28 +01:00
Dan Nicholson
749b65fd37 subprojects: Update pcre
Recently wrapdb updated pcre from 8.37 (released in 2015!) to the
current 8.45 release. There have been several security fixes between
those releases and currently a buffer overflow is being flagged by
ostree's oss-fuzz project where pcre is installed via wrapdb.

This change was generated by `meson wrap update pcre`.
2022-05-06 13:55:28 +01:00
Philip Withnall
bd1781a356 build: Stop using Meson features deprecated in Meson <0.60
This clears some Meson warnings.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:55:28 +01:00
Xavier Claessens
374be41433 meson: Use meson.can_run_host_binaries()
It is not only shorter than `not meson.is_cross_build() or
meson.has_exe_wrapper()` but also handle the case of cross compiling to
a compatible arch such as building for i386 on an amd64.
2022-05-06 13:17:11 +01:00
Philip Withnall
25ab87d8e5 build: Drop checks and workarounds for older Meson versions
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:01:44 +01:00
Philip Withnall
1bdce46399 build: Bump Meson dependency to 0.60.0
As per the new policy in `docs/meson-version.md`, we can now bump the
dependency.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:01:44 +01:00
Philip Withnall
91c50c2927 docs: Mention how to install a new Meson version using pip in INSTALL.in
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-06 13:01:44 +01:00
Philip Withnall
7fd4ebacb3 docs: Add a Meson version policy
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2596
2022-05-06 13:01:44 +01:00
Emmanuel Fleury
647506966d Move tests/thread-test.c to glib/tests/thread-deprecated.c
Helps issue #1434
2022-05-06 10:50:40 +02:00
Philip Withnall
5ea0ecf8c7 Merge branch 'cond-wait-mips24' into 'main'
gthread: Fix futex timespec type on 32-bit kernels with 64-bit userspace

Closes #2634

See merge request GNOME/glib!2622
2022-05-05 16:49:04 +00:00
Sebastian Dröge
c53ba685f5 Merge branch 'oss-fuzz-test' into 'main'
fuzzing: Only set the writer function once

See merge request GNOME/glib!2638
2022-05-05 16:36:27 +00:00
Philip Withnall
70e7161bc5 fuzzing: Only set the writer function once
This should fix fuzzing builds since commit dfb3517d.

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

oss-fuzz#47108
2022-05-05 16:32:27 +01:00
Philip Withnall
6399ff04c3 Merge branch 'uri-preallocation' into 'main'
guri: Preallocate a buffer for building URIs

See merge request GNOME/glib!2637
2022-05-05 13:30:31 +00:00
Philip Withnall
fa5947d3e7 fuzzing: Add unit tests to check fuzzers
Test the fuzzers with one arbitrary input each, to ensure that they work
at a very basic level.

This should catch regressions in each of the fuzzers without having to
wait for them to be picked up by oss-fuzz.

These tests can be run using `meson test --suite fuzzing`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-05 14:06:57 +01:00
Philip Withnall
208ae36596 Merge branch 'threadpool_test' into 'main'
Move tests/threadpool-test.c to glib/test/thread-pool-slow.c

See merge request GNOME/glib!2634
2022-05-05 12:45:37 +00:00
Philip Withnall
17f608e382 guri: Preallocate a buffer for building URIs
Rather than reallocating the string buffer a few times as more
components are added, use a default buffer size which should hopefully
accommodate most average URIs.

The buffer size is a guess and can be tweaked in future.

This has the advantage of no longer passing a potentially-`NULL`
`scheme` to `g_string_new()`, which should placate the static analysers,
which think that `g_string_new()` shouldn’t accept `NULL`.

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

Coverity CID: #1474691
2022-05-05 13:38:44 +01:00
Sebastian Dröge
68228995d7 Merge branch 'coverity-issues' into 'main'
Add a couple of assertions to help with static analysis

See merge request GNOME/glib!2635
2022-05-05 12:27:17 +00:00
Philip Withnall
977756590c ghmac: Fix some signed/unsigned issues with g_checksum_type_get_length()
As with the previous commit, the return value from
`g_checksum_type_get_length()` is signed, but some of the `GHmac` code
was treating it as unsigned.

Add some assertions to make it clearer to static analysis that this is
OK because `GHmac` only ever calls it after validating its input, so
it’s guaranteed to never return a negative number.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-05 13:24:44 +01:00
Philip Withnall
a3911ef159 ghmac: Fix some signed/unsigned issues with g_checksum_update()
The length argument to `g_checksum_update()` is signed, allowing
`length < 0` to indicate a nul-terminated input string. However, most of
the `GHmac` machinery which calls `g_checksum_update()` uses unsigned
`gsize`s.

If any of those sizes exceed `G_MAXSSIZE` (which is very unlikely and
could only happen with a buggy caller), the unsigned-to-signed
conversion would wrap and cause `g_checksum_update()` to inappropriately
interpret the input as nul-terminated.

Fix that by adding a load of assertions and making the
unsigned-to-signed comparisons explicit.

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

Coverity CID: #1486807
2022-05-05 13:18:40 +01:00
Philip Withnall
c7c530c3b8 gdate: Add an assertion to help static analysis
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Coverity CID: #1486833
2022-05-05 11:23:49 +01:00
Philip Withnall
b810bdc94d gconvert: Add an assertion to help static analysis
`g_convert()` returns `NULL` iff it returns an error, but the static
analyser can’t quite work that out. Add an assertion to help.

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

Coverity CID: #1486844
2022-05-05 11:19:50 +01:00
Sebastian Dröge
8cf0c13e6d Merge branch 'update-closure-annotations' into 'main'
Fix closure annotations in callbacks' user data parameters

See merge request GNOME/glib!2633
2022-05-05 08:59:17 +00:00
Emmanuel Fleury
611a020308 Move tests/threadpool-test.c to glib/test/thread-pool-slow.c
Helps issue #1434
2022-05-05 10:51:16 +02:00
Emmanuel Fleury
cc41af57c3 Convert tests/threadpool-test.c to glib test framework 2022-05-05 10:47:05 +02:00
TestingPlant
168ba785a1 Remove redundant explicit closure annotations
Callbacks' user_data parameters are automatically marked as closures,
meaning there's no need to mark them as closures manually.
2022-05-05 02:49:19 +00:00
TestingPlant
1422e5f812 Rename all user datas in callbacks to user_data
The user data parameters in callbacks need to be named user_data to
generate correct closure attributes in the introspection data.
2022-05-05 02:42:26 +00:00
Nicola Fontana
ac2ab3d3c6 gspawn: Simplify async_with_pipes code
Be consistent with its docblock and directly call
`g_spawn_async_with_pipes_and_fds()` with the appropriate arguments.
2022-05-02 10:48:33 +02:00
Sebastian Dröge
0c6a1af9d6 Merge branch 'gdbus-threading-test-fix-maybe' into 'main'
tests: Reduce wakeup interval in gdbus-threading

See merge request GNOME/glib!2604
2022-04-29 08:05:52 +00:00
Sebastian Dröge
ef8e0035a5 Merge branch 'fix-gdbus-peer-object-manager-test' into 'main'
tests: Use G_TEST_OPTION_ISOLATE_DIRS in gdbus-peer-object-manager

See merge request GNOME/glib!2603
2022-04-29 08:04:33 +00:00
Sebastian Dröge
56531a7ae6 Merge branch 'combine-ci-jobs' into 'main'
ci: Combine style-check-diff and check-todos jobs into one

See merge request GNOME/glib!2598
2022-04-29 08:03:49 +00:00
Sebastian Dröge
4ea412c276 Merge branch 'unicode-normalise-leak' into 'main'
tests: Fix a minor leak in the unicode-normalize test

See merge request GNOME/glib!2606
2022-04-29 08:02:56 +00:00
Sebastian Dröge
42da5c454c Merge branch 'move-lcovrc' into 'main'
build: Move lcovrc file to root so it’s picked up by Meson

See merge request GNOME/glib!2630
2022-04-29 08:01:15 +00:00
Sebastian Dröge
cf863530ef Merge branch 'fix-unicode-normalize-installed-test' into 'main'
tests: Ensure NormalizationTest.txt is installed for installed-tests

See merge request GNOME/glib!2602
2022-04-29 08:00:50 +00:00
Sebastian Dröge
53016eff58 Merge branch 'revert-stat-abi-break' into 'main'
Revert "glib/gstdio: simplify GStatBuf macro condition for win64"

Closes #2633

See merge request GNOME/glib!2618
2022-04-29 08:00:31 +00:00
Sebastian Dröge
4f48d4e1bb Merge branch 'scan-build-fixes' into 'main'
Fix various scan-build warnings

See merge request GNOME/glib!2628
2022-04-28 11:07:34 +00:00
Philip Withnall
8e295e23a5 build: Move lcovrc file to root so it’s picked up by Meson
Move the lcovrc file to the root of the project, so that it’s picked up
by Meson when running `ninja coverage` locally.

See https://github.com/mesonbuild/meson/issues/4628

This won’t affect the code coverage run on the CI, since that explicitly
used the lcovrc file already.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-04-28 11:57:45 +01:00
Sebastian Dröge
a0aff5404c Merge branch 'scan-build-leak-fix' into 'main'
gopenuriportal: Fix a use-after-free on an error path

See merge request GNOME/glib!2627
2022-04-28 10:44:57 +00:00
Philip Withnall
a17a27bcf1 glocalfileinfo: Remove a redundant store
This fixes a scan-build warning:
```
../../../../source/glib/gio/glocalfileinfo.c:1661:28: warning: Although the value stored to 'mydirname' is used in the enclosing expression, the value is never actually read from 'mydirname' [deadcode.DeadStores]
                           mydirname = g_strdup (dirname),
                           ^           ~~~~~~~~~~~~~~~~~~
```

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

Helps: #1767
2022-04-28 11:22:53 +01:00
Philip Withnall
b509e59726 tests: Remove some redundant writes
`ret` was never read. This fixes scan-build warnings:
```
../../../../source/glib/glib/tests/thread.c:148:8: warning: Although the value stored to 'ret' is used in the enclosing expression, the value is never actually read from 'ret' [deadcode.DeadStores]
  if ((ret = prlimit (getpid (), RLIMIT_NPROC, &nl, &ol)) != 0)
       ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/glib/glib/tests/thread.c:174:8: warning: Although the value stored to 'ret' is used in the enclosing expression, the value is never actually read from 'ret' [deadcode.DeadStores]
  if ((ret = prlimit (getpid (), RLIMIT_NPROC, &ol, NULL)) != 0)
       ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

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

Helps: #1767
2022-04-28 11:22:53 +01:00
Philip Withnall
de5b30df84 tests: Add a missing assertion
This fixes a warning about a dead store to `newpath` from scan-build.

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

Helps: #1767
2022-04-28 11:22:53 +01:00
Philip Withnall
1d6c46a0ac gdatetime: Rework array indexing to satisfy scan-build
This introduces no functional changes, but reworks the array indexing so
that scan-build has a better idea about the array bounds. This squashes
the scan-build warning:
```
../../../../source/glib/glib/gdatetime.c:2292:20: warning: The left operand of '>=' is a garbage value [core.UndefinedBinaryOperatorResult]
      if (days [i] >= day_of_year)
          ~~~~~~~~ ^
```

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

Helps: #1767
2022-04-28 11:22:53 +01:00
Philip Withnall
969eb835dc gopenuriportal: Fix a use-after-free on an error path
`path` was used in building the error message after it had been freed.
Spotted by scan-build.

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

Helps: #1767
2022-04-28 11:22:33 +01:00
Philip Withnall
7f83151ac0 gsocket: Clear address before filling it
This will probably make no functional difference, but will squash two
warnings from scan-build:
```
../../../../source/glib/gio/gsocket.c:503:14: warning: Assigned value is garbage or undefined [core.uninitialized.Assign]
      family = address.storage.ss_family;
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/glib/gio/gsocket.c:527:29: warning: Assigned value is garbage or undefined [core.uninitialized.Assign]
       socket->priv->family = address.storage.ss_family;
                            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
```

It seems like a reasonable thing to warn about. Initialising the full
union to zero should avoid any possibility of undefined behaviour like
that.

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

Helps: #1767
2022-04-28 10:50:08 +01:00
Philip Withnall
c02890645b tests: Drop redundant store
This fixes a scan-build warning:
```
../../../../source/glib/gio/tests/gdbus-tests.c:146:3: warning: Value stored to 'watch_id' is never read [deadcode.DeadStores]
  watch_id = 0;
  ^
```

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

Helps: #1767
2022-04-28 10:43:13 +01:00
Philip Withnall
86b8891add gmain: Initialise a variable
This fixes a scan-build warning:
```
../../../../source/glib/glib/gmain.c:4193:18: warning: 2nd function call argument is an uninitialized value [core.CallAndMessage]
  while ((nfds = g_main_context_query (context, max_priority, &timeout, fds,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

This is a valid situation which can occur if the preceding
`g_main_context_prepare()` call returns `FALSE` and doesn’t set
`max_priority`.

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

Helps: #1767
2022-04-28 10:40:38 +01:00