From 2eeff0f4f1af40eb0c22d869c50eb364e2a5d489 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 25 Apr 2023 01:46:22 +0100 Subject: sd-event: store and compare per-module static origin id sd-event objects use hashmaps, which use module-global state, so it is not safe to pass a sd-event object created by a module instance to another module instance (e.g.: when two libraries static linking sd-event are pulled in a single process). Initialize a random per-module origin id and store it in the object, and compare it when entering a public API, and error out if they don't match, together with the PID. --- man/sd_event_add_child.xml | 2 +- man/sd_event_add_defer.xml | 2 +- man/sd_event_add_inotify.xml | 2 +- man/sd_event_add_io.xml | 2 +- man/sd_event_add_memory_pressure.xml | 2 +- man/sd_event_add_signal.xml | 2 +- man/sd_event_add_time.xml | 2 +- man/sd_event_exit.xml | 2 +- man/sd_event_get_fd.xml | 2 +- man/sd_event_now.xml | 2 +- man/sd_event_run.xml | 2 +- man/sd_event_set_signal_exit.xml | 2 +- man/sd_event_set_watchdog.xml | 2 +- man/sd_event_source_get_pending.xml | 2 +- man/sd_event_source_set_description.xml | 2 +- man/sd_event_source_set_enabled.xml | 2 +- man/sd_event_source_set_floating.xml | 2 +- man/sd_event_source_set_prepare.xml | 2 +- man/sd_event_source_set_priority.xml | 2 +- man/sd_event_source_set_ratelimit.xml | 2 +- man/sd_event_wait.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) (limited to 'man') diff --git a/man/sd_event_add_child.xml b/man/sd_event_add_child.xml index fec754d2dd..31b9d76340 100644 --- a/man/sd_event_add_child.xml +++ b/man/sd_event_add_child.xml @@ -289,7 +289,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_defer.xml b/man/sd_event_add_defer.xml index e56e16a032..3bac5d53d4 100644 --- a/man/sd_event_add_defer.xml +++ b/man/sd_event_add_defer.xml @@ -168,7 +168,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_inotify.xml b/man/sd_event_add_inotify.xml index c7af7bdcd0..1f31907b0d 100644 --- a/man/sd_event_add_inotify.xml +++ b/man/sd_event_add_inotify.xml @@ -170,7 +170,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_io.xml b/man/sd_event_add_io.xml index 383a58a074..4201c68f0d 100644 --- a/man/sd_event_add_io.xml +++ b/man/sd_event_add_io.xml @@ -270,7 +270,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_memory_pressure.xml b/man/sd_event_add_memory_pressure.xml index 8df69fde3b..08a27d15c1 100644 --- a/man/sd_event_add_memory_pressure.xml +++ b/man/sd_event_add_memory_pressure.xml @@ -236,7 +236,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_signal.xml b/man/sd_event_add_signal.xml index 3e8536e961..29a7823974 100644 --- a/man/sd_event_add_signal.xml +++ b/man/sd_event_add_signal.xml @@ -165,7 +165,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_add_time.xml b/man/sd_event_add_time.xml index 19f112b0f6..6031fee1b3 100644 --- a/man/sd_event_add_time.xml +++ b/man/sd_event_add_time.xml @@ -270,7 +270,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_exit.xml b/man/sd_event_exit.xml index e13cbe18ab..343dd9066e 100644 --- a/man/sd_event_exit.xml +++ b/man/sd_event_exit.xml @@ -109,7 +109,7 @@ -ECHILD - The event loop was created in a different process. + The event loop was created in a different process, library or module instance. diff --git a/man/sd_event_get_fd.xml b/man/sd_event_get_fd.xml index a3b11e41ee..698691fa0d 100644 --- a/man/sd_event_get_fd.xml +++ b/man/sd_event_get_fd.xml @@ -77,7 +77,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_now.xml b/man/sd_event_now.xml index 789b9e0288..70e980ab7b 100644 --- a/man/sd_event_now.xml +++ b/man/sd_event_now.xml @@ -91,7 +91,7 @@ -ECHILD - The event loop object was created in a different process. + The event loop object was created in a different process, library or module instance. diff --git a/man/sd_event_run.xml b/man/sd_event_run.xml index 81c51b7060..c30f5eb4c2 100644 --- a/man/sd_event_run.xml +++ b/man/sd_event_run.xml @@ -129,7 +129,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_set_signal_exit.xml b/man/sd_event_set_signal_exit.xml index e5e675beec..cdf49a54f9 100644 --- a/man/sd_event_set_signal_exit.xml +++ b/man/sd_event_set_signal_exit.xml @@ -72,7 +72,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_set_watchdog.xml b/man/sd_event_set_watchdog.xml index 28d647c7bc..954a1366cf 100644 --- a/man/sd_event_set_watchdog.xml +++ b/man/sd_event_set_watchdog.xml @@ -108,7 +108,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_get_pending.xml b/man/sd_event_source_get_pending.xml index 5906930b3c..7521ba6420 100644 --- a/man/sd_event_source_get_pending.xml +++ b/man/sd_event_source_get_pending.xml @@ -109,7 +109,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_description.xml b/man/sd_event_source_set_description.xml index bea3e71914..9ad369817f 100644 --- a/man/sd_event_source_set_description.xml +++ b/man/sd_event_source_set_description.xml @@ -106,7 +106,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_enabled.xml b/man/sd_event_source_set_enabled.xml index 5f13fc101d..cab8667f0f 100644 --- a/man/sd_event_source_set_enabled.xml +++ b/man/sd_event_source_set_enabled.xml @@ -127,7 +127,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_floating.xml b/man/sd_event_source_set_floating.xml index 7f3ed86a65..db288094b6 100644 --- a/man/sd_event_source_set_floating.xml +++ b/man/sd_event_source_set_floating.xml @@ -89,7 +89,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_prepare.xml b/man/sd_event_source_set_prepare.xml index d52c55b3db..e7526a9ff5 100644 --- a/man/sd_event_source_set_prepare.xml +++ b/man/sd_event_source_set_prepare.xml @@ -104,7 +104,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_priority.xml b/man/sd_event_source_set_priority.xml index 2616c12e3f..efe05b11d2 100644 --- a/man/sd_event_source_set_priority.xml +++ b/man/sd_event_source_set_priority.xml @@ -139,7 +139,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_source_set_ratelimit.xml b/man/sd_event_source_set_ratelimit.xml index b8e6380ddd..07ac18b791 100644 --- a/man/sd_event_source_set_ratelimit.xml +++ b/man/sd_event_source_set_ratelimit.xml @@ -120,7 +120,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. diff --git a/man/sd_event_wait.xml b/man/sd_event_wait.xml index 25e21b9d5c..0dc7105cf9 100644 --- a/man/sd_event_wait.xml +++ b/man/sd_event_wait.xml @@ -291,7 +291,7 @@ -ECHILD - The event loop has been created in a different process. + The event loop has been created in a different process, library or module instance. -- cgit v1.2.1