dbus/dbus
Simon McVittie 0735c401a7 internals: Use negative numbers to indicate no malloc failure simulation
If we set the countdown to simulating a failed allocation to
_DBUS_INT_MAX, then it will decrement every time we allocate memory,
eventually reaching 0 and triggering a simulated malloc failure.
In practice this does not happen during unit testing, because all of
our tests are (intentionally!) short enough that this can't happen,
but it can happen if a build of dbus with embedded tests enabled is
used for the "real" dbus-daemon or a "real" D-Bus service, either
during debugging or unintentionally, as noted on dbus/dbus!493.

We cannot simply special-case `_DBUS_INT_MAX` to never be decremented,
because _dbus_test_oom_handling() relies on the counter being
decremented even while we are not simulating malloc failure, as a way
to count the number of allocations as an upper bound for how long to
set the countdown during subsequent test runs.

Instead, reserve all negative numbers to represent the absence of
malloc failure simulation, while still being able to count allocations
by comparing two different negative numbers.

Resolves: https://gitlab.freedesktop.org/dbus/dbus/-/issues/535
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-12-10 11:10:39 +00:00
..
.gitignore .gitignore: Ignore many more generated files 2018-12-14 13:28:50 +00:00
CMakeLists.txt Rename "embedded tests" to "intrusive tests" 2024-12-10 10:25:23 +00:00
dbus-address.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-address.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-arch-deps.h.in dbus-arch-deps: Mark as AFL-2.0 OR GPL-2.0-or-later 2022-11-29 13:33:53 +00:00
dbus-asv-util.c _dbus_asv_add_unix_fd: add 2023-08-08 12:24:20 +01:00
dbus-asv-util.h _dbus_asv_add_unix_fd: add 2023-08-08 12:24:20 +01:00
dbus-auth.c sysdeps: Remove _dbus_string_append_int() 2024-05-18 12:19:16 +00:00
dbus-auth.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-backtrace-win.c dbus/dbus-backtrace-win.c: New file with backtrace generator for Windows 2022-11-29 13:33:53 +00:00
dbus-bus.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-bus.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-connection-internal.h bus: Assign a serial number for messages from the driver 2023-06-06 12:01:02 +01:00
dbus-connection.c Document ownership of reference in dbus_connection_send_with_reply() 2024-05-18 11:00:25 +00:00
dbus-connection.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-credentials.c DBusCredentials: add support for PID FDs via SO_PEERPIDFD 2023-08-08 12:24:20 +01:00
dbus-credentials.h DBusCredentials: add support for PID FDs via SO_PEERPIDFD 2023-08-08 12:24:20 +01:00
dbus-dataslot.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-dataslot.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-errors.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-errors.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-file-unix.c Support /proc in _dbus_file_get_content 2023-05-15 19:06:54 +00:00
dbus-file-win.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-file.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-file.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-hash.c dbus-hash: Fix RANDOM_INDEX signed-integer-overflow on 32-bit 2024-11-29 12:57:15 +00:00
dbus-hash.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-init-win.cpp sysdeps: Move declarations used from C++ to their own header 2023-08-15 12:54:41 +00:00
dbus-init-win.h sysdeps: Move declarations used from C++ to their own header 2023-08-15 12:54:41 +00:00
dbus-internals.c internals: Use negative numbers to indicate no malloc failure simulation 2024-12-10 11:10:39 +00:00
dbus-internals.h internals: Use negative numbers to indicate no malloc failure simulation 2024-12-10 11:10:39 +00:00
dbus-keyring.c sysdeps: Remove _dbus_string_append_int() 2024-05-18 12:19:16 +00:00
dbus-keyring.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-list.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-list.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-macros-internal.h Rename "embedded tests" to "intrusive tests" 2024-12-10 10:25:23 +00:00
dbus-macros.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-mainloop.c _dbus_loop_iterate: Fix OOM retry timeout handling 2024-12-09 16:36:10 +00:00
dbus-mainloop.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-basic.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-basic.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-byteswap.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-byteswap.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-header.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-header.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-recursive.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-recursive.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-validate.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-marshal-validate.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-memory.c internals: Use negative numbers to indicate no malloc failure simulation 2024-12-10 11:10:39 +00:00
dbus-memory.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-mempool.c internals: Use negative numbers to indicate no malloc failure simulation 2024-12-10 11:10:39 +00:00
dbus-mempool.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-message-internal.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-message-private.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-message-util.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-message.c dbus_message_iter_get_signature: Fix two memory leaks on OOM 2023-05-12 18:16:47 +00:00
dbus-message.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-misc.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-misc.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-nonce.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-nonce.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-object-tree.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-object-tree.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pending-call-internal.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pending-call.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pending-call.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pipe-unix.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pipe-win.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pipe.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pipe.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pollable-set-epoll.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pollable-set-poll.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pollable-set.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-pollable-set.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-protocol.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-resources.c Fix data race in multithreaded application 2023-01-05 16:44:25 +01:00
dbus-resources.h Add multithreaded unit test for DBusCounter to available build systems 2023-01-05 16:43:55 +01:00
dbus-server-debug-pipe.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-debug-pipe.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-launchd.c Add SPDX license tags for the MIT (Expat) license, where straightforward 2023-08-14 17:18:04 +00:00
dbus-server-launchd.h Add SPDX license tags for the MIT (Expat) license, where straightforward 2023-08-14 17:18:04 +00:00
dbus-server-protected.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-socket.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-socket.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-unix.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-win.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server-win.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-server.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sha.c dbus/dbus-sha.c: add LicenseRef-pycrypto-orig SPDX license marker 2022-11-29 13:33:53 +00:00
dbus-sha.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-shared.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-shell.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-shell.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-signature.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-signature.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sockets-win.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-spawn-unix.c tests: Only check whether the first 1024 fds are close-on-exec 2024-10-28 16:10:39 +00:00
dbus-spawn-win.c dbus-spawn-win: use _DBUS_FUNCTION_NAME instead of __FUNCTION__ 2023-05-15 18:56:09 +00:00
dbus-spawn.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-string-private.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-string-util.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-string.c _dbus_string_skip_blank(): Let the final assert follow the previous search 2023-02-08 12:03:30 +00:00
dbus-string.h sysdeps: Remove _dbus_string_append_int() 2024-05-18 12:19:16 +00:00
dbus-syntax.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-syntax.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps-pthread.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps-thread-win.c sysdeps: Move declarations used from C++ to their own header 2023-08-15 12:54:41 +00:00
dbus-sysdeps-unix.c sysdeps-unix: Always initialize flags for syslog() 2024-09-25 14:42:15 +01:00
dbus-sysdeps-unix.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps-util-unix.c bus: search for system-services in /etc/ and /run/ by default 2024-10-03 00:58:29 +01:00
dbus-sysdeps-util-win.c bus: search for system-services in /etc/ and /run/ by default 2024-10-03 00:58:29 +01:00
dbus-sysdeps-util.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps-win.c sysdeps-win: Fix autolaunch: regression on Windows 2024-04-06 21:12:53 +02:00
dbus-sysdeps-win.h sysdeps: Move declarations used from C++ to their own header 2023-08-15 12:54:41 +00:00
dbus-sysdeps-wince-glue.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps-wince-glue.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-sysdeps.c sysdeps: Avoid passing possibly null port-number string to printf %s 2024-09-25 14:42:15 +01:00
dbus-sysdeps.h bus: search for system-services in /etc/ and /run/ by default 2024-10-03 00:58:29 +01:00
dbus-test-tap.c Add SPDX license tags for the MIT (Expat) license, where straightforward 2023-08-14 17:18:04 +00:00
dbus-test-tap.h Add SPDX license tags for the MIT (Expat) license, where straightforward 2023-08-14 17:18:04 +00:00
dbus-test.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-threads-internal.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-threads.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-threads.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-timeout.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-timeout.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-protected.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-socket.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-socket.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-unix.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-unix.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-win.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport-win.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-transport.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-types.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-userdb-util.c userdb: Use "goto out" pattern for _dbus_groups_from_uid() 2023-08-21 13:49:31 +00:00
dbus-userdb.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-userdb.h userdb: Add proper error reporting when getting groups from a uid 2023-08-18 16:04:03 +01:00
dbus-uuidgen.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-uuidgen.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-valgrind-internal.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-watch.c Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus-watch.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
dbus.h Add SPDX license marker for the AFL-2.1 OR GPL-2.0-or-later license 2023-01-04 07:53:44 +00:00
meson.build Rename "embedded tests" to "intrusive tests" 2024-12-10 10:25:23 +00:00
test-version-script meson: Fix the check for --version-script support 2022-07-13 20:36:13 +01:00
Version.in Link dbus-daemon and dbus-daemon-lauch-helper against libdbus 2015-02-20 20:49:45 +00:00
versioninfo.rc.in dbus/versioninfo.rc.in: add LicenseRef-GAP SPDX license marker 2022-11-29 13:33:53 +00:00