Skip to content

fix(plugin)!: pass Miri tests - #85

Merged
poiana merged 17 commits into
falcosecurity:mainfrom
gnosek:miri
Jun 3, 2026
Merged

fix(plugin)!: pass Miri tests#85
poiana merged 17 commits into
falcosecurity:mainfrom
gnosek:miri

Conversation

@gnosek

@gnosek gnosek commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area automation

/area event

/area event_derive

/area plugin

/area plugin_api

/area plugin_derive

/area plugin_tests

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

NONE

@gnosek

gnosek commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator Author

/hold

let's merge #84 first

@ekoops ekoops left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve

@poiana

poiana commented Jun 3, 2026

Copy link
Copy Markdown

LGTM label has been added.

DetailsGit tree hash: 56aca0bb9d26d2807d14b82b3df3920569443efb

@poiana

poiana commented Jun 3, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ekoops, gnosek

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

gnosek added 13 commits June 3, 2026 11:09
Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: trying to retag from <129475> for Unique permission at alloc40967[0xf8], but that tag does not exist in the borrow stack for this location
	 --> falco_plugin_runner/src/plugin/async_event.rs:143:25
	  |
	  = note: this error occurs as part of retag at alloc40967[0xf8..0x140]
	  |
	  = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	  = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <129475> was created by a SharedReadWrite retag at offsets [0xf8..0x140]
	 --> falco_plugin_runner/src/plugin/async_event.rs:49:8
	help: <129475> was later invalidated at offsets [0x0..0x198] by a Unique retag
	 --> falco_plugin_runner/src/lib.rs:87:22
	  = note: this is on thread `unnamed-2`
	  = note: stack backtrace:
		  0: falco_plugin_runner::plugin::async_event::async_handler_inner
		      at falco_plugin_runner/src/plugin/async_event.rs:143:26: 143:59
		  1: falco_plugin_runner::plugin::async_event::async_handler::{closure#0}
		      at falco_plugin_runner/src/plugin/async_event.rs:115:9: 115:47
		  2: <{closure@falco_plugin_runner::plugin::async_event::async_handler::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
		      at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		  3: <std::panic::AssertUnwindSafe<{closure@falco_plugin_runner::plugin::async_event::async_handler::{closure#0}}> as std::ops::FnOnce<()>>::call_once
		      at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		  4: std::panicking::catch_unwind::do_call::<std::panic::AssertUnwindSafe<{closure@falco_plugin_runner::plugin::async_event::async_handler::{closure#0}}>, i32>
		      at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		  5: std::panicking::catch_unwind::<i32, std::panic::AssertUnwindSafe<{closure@falco_plugin_runner::plugin::async_event::async_handler::{closure#0}}>>
		      at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		  6: std::panic::catch_unwind::<std::panic::AssertUnwindSafe<{closure@falco_plugin_runner::plugin::async_event::async_handler::{closure#0}}>, i32>
		      at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		  7: falco_plugin_runner::plugin::async_event::async_handler
		      at falco_plugin_runner/src/plugin/async_event.rs:114:18: 116:8
		  8: falco_plugin::async_event::AsyncHandler::emit::<falco_plugin::event::events::Event<falco_plugin::async_event::AsyncEvent<'_, &[u8]>>>
		      at falco_plugin/src/async_event/async_handler.rs:39:13: 39:87
		  9: <DummyPlugin as falco_plugin::async_event::AsyncEventPlugin>::start_async::{closure#0}
		      at falco_plugin_tests/tests/async.rs:74:13: 74:70
		  10: falco_plugin::async_event::BackgroundTask::spawn::<{closure@falco_plugin_tests/tests/async.rs:72:72: 72:79}>::{closure#0}
		      at falco_plugin/src/async_event/background_task.rs:97:17: 97:23
	note: the last function in that backtrace got called indirectly due to this code
	 --> falco_plugin/src/async_event/background_task.rs:95:11

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: attempting a read access using <176063> at alloc58248[0x0], but that tag does not exist in the borrow stack for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ffi/c_str.rs:766:22
	    |
	766 |             unsafe { strlen(s) }
	    |                      ^^^^^^^^^ this error occurs as part of an access at alloc58248[0x0..0x1]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <176063> was created by a SharedReadOnly retag at offsets [0x0..0x400]
	   --> falco_plugin/src/async_event/async_handler.rs:35:22
	help: <176063> was later invalidated at offsets [0x0..0x400] by a Unique retag
	   --> falco_plugin/src/async_event/async_handler.rs:39:69
	    = note: this is on thread `unnamed-2`
	    = note: stack backtrace:
		    0: core::ffi::c_str::strlen::runtime
			at .../lib/rustlib/src/rust/library/core/src/ffi/c_str.rs:766:22: 766:31
		    1: core::ffi::c_str::strlen
			at .../lib/rustlib/src/rust/library/core/src/intrinsics/mod.rs:2447:9: 2447:61
		    2: std::ffi::CStr::from_ptr::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ffi/c_str.rs:256:28: 256:39
		    3: falco_plugin::strings::from_ptr::try_str_from_ptr_with_lifetime::<*const i8>
			at falco_plugin/src/strings/from_ptr.rs:22:25: 22:51
		    4: falco_plugin::strings::from_ptr::try_str_from_ptr
			at falco_plugin/src/strings/from_ptr.rs:28:14: 28:55
		    5: falco_plugin::async_event::AsyncHandler::emit::<falco_plugin::event::events::Event<falco_plugin::async_event::AsyncEvent<'_, &[u8]>>>
			at falco_plugin/src/async_event/async_handler.rs:43:27: 43:53
		    6: <DummyPlugin as falco_plugin::async_event::AsyncEventPlugin>::start_async::{closure#0}
			at falco_plugin_tests/tests/async.rs:75:21: 76:74
		    7: falco_plugin::async_event::BackgroundTask::spawn::<{closure@falco_plugin_tests/tests/async.rs:72:72: 72:79}>::{closure#0}
			at falco_plugin/src/async_event/background_task.rs:97:17: 97:23
	note: the last function in that backtrace got called indirectly due to this code
	   --> falco_plugin/src/async_event/background_task.rs:95:11

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: trying to retag from <123301> for Unique permission at alloc38945[0x0], but that tag only grants SharedReadOnly permission for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ this error occurs as part of retag at alloc38945[0x0..0x180]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <123301> was created by a SharedReadOnly retag at offsets [0x0..0x80]
	   --> falco_plugin_runner/src/plugin/mod.rs:189:8
	    = note: this is on thread `tests::native::`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin_runner::plugin::Plugin>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin_runner::plugin::add_table
			at falco_plugin_runner/src/plugin/mod.rs:551:33: 551:64
		    2: falco_plugin::tables::export::tables_input::<impl falco_plugin::tables::TablesInput<'_>>::add_table::<u64, TableEntry>
			at falco_plugin/src/tables/export/tables_input.rs:64:18: 64:72
		    3: <DummyAsyncPlugin as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/tests/async_tables.rs:45:21: 45:86
		    4: falco_plugin::base::wrappers::plugin_init::<DummyAsyncPlugin>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    5: <{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    6: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    7: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    8: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    9: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    10: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    11: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyAsyncPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyAsyncPlugin>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    12: falco_plugin::base::wrappers::plugin_init::<DummyAsyncPlugin>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    13: DUMMY_ASYNC_PLUGIN::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    14: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:219:31: 219:52
		    15: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    16: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    17: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    18: falco_plugin_tests::init_plugin::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/src/lib.rs:22:18: 22:53
		    19: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/async_tables.rs:220:37: 220:86
		    20: tests::native::test_async
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    21: tests::native::test_async::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: trying to retag from <138291> for Unique permission at alloc40178[0x0], but that tag only grants SharedReadOnly permission for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ this error occurs as part of retag at alloc40178[0x0..0x98]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <138291> was created by a SharedReadOnly retag at offsets [0x0..0x98]
	   --> falco_plugin_runner/src/plugin/mod.rs:543:23
	    = note: this is on thread `tests::native::`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::falco_plugin_api::ss_plugin_table_input>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin_runner::tables::get_table_field
			at falco_plugin_runner/src/tables.rs:23:36: 23:56
		    2: falco_plugin::tables::vtable::fields::TableFields::<'_>::get_table_field
			at falco_plugin/src/tables/vtable/fields.rs:42:16: 47:14
		    3: falco_plugin::tables::import::RawTable::get_field::<u64>
			at falco_plugin/src/tables/import/table/raw.rs:99:21: 103:10
		    4: <ImportedTableMetadata as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    5: <std::sync::Arc<ImportedTableMetadata> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    6: falco_plugin::tables::import::table_input::<impl falco_plugin::tables::TablesInput<'_>>::get_table::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>, u64>
			at falco_plugin/src/tables/import/table_input.rs:30:28: 30:58
		    7: <DummyPlugin as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/tests/async_tables.rs:134:30: 134:55
		    8: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    9: <{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    10: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    11: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    12: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    13: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    14: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    15: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    16: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    17: DUMMY_PLUGIN::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    18: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:220:31: 220:52
		    19: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    20: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    21: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    22: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/async_tables.rs:221:9: 221:58
		    23: tests::native::test_async
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    24: tests::native::test_async::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: trying to retag from <124942> for Unique permission at alloc39673[0x0], but that tag does not exist in the borrow stack for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ this error occurs as part of retag at alloc39673[0x0..0x48]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <124942> was created by a SharedReadOnly retag at offsets [0x0..0x38]
	   --> falco_plugin/src/tables/export/table_box.rs:57:8
	help: <124942> was later invalidated at offsets [0x0..0x48] by a Unique retag (of a reference/box inside this compound value)
	   --> falco_plugin/src/tables/export/tables_input.rs:66:11
	    = note: this is on thread `tests::native::`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::tables::export::table::TableData<u64, TableEntry>>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::export::wrappers::get_table_field::<u64, TableEntry>
			at falco_plugin/src/tables/export/wrappers.rs:327:27: 327:67
		    2: falco_plugin_runner::tables::get_table_field
			at falco_plugin_runner/src/tables.rs:188:14: 188:53
		    3: falco_plugin::tables::vtable::fields::TableFields::<'_>::get_table_field
			at falco_plugin/src/tables/vtable/fields.rs:42:16: 47:14
		    4: falco_plugin::tables::import::RawTable::get_field::<u64>
			at falco_plugin/src/tables/import/table/raw.rs:99:21: 103:10
		    5: <ImportedTableMetadata as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    6: <std::sync::Arc<ImportedTableMetadata> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    7: falco_plugin::tables::import::table_input::<impl falco_plugin::tables::TablesInput<'_>>::get_table::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>, u64>
			at falco_plugin/src/tables/import/table_input.rs:30:28: 30:58
		    8: <DummyPlugin as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/tests/async_tables.rs:134:30: 134:55
		    9: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    10: <{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    11: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    12: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    13: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    14: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    15: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    16: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    17: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    18: DUMMY_PLUGIN::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    19: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:220:31: 220:52
		    20: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    21: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    22: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    23: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/async_tables.rs:221:9: 221:58
		    24: tests::native::test_async
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    25: tests::native::test_async::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: writing to alloc16 which is read-only
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ Undefined Behavior occurred here
	    |
	    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
	    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
	    = note: this is on thread `tests::native::`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::falco_plugin_api::ss_plugin_table_field_t>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::import::RawTable::get_field::<u64>
			at falco_plugin/src/tables/import/table/raw.rs:105:13: 106:26
		    2: <ImportedTableMetadata as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    3: <std::sync::Arc<ImportedTableMetadata> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    4: falco_plugin::tables::import::table_input::<impl falco_plugin::tables::TablesInput<'_>>::get_table::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>, u64>
			at falco_plugin/src/tables/import/table_input.rs:30:28: 30:58
		    5: <DummyPlugin as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/tests/async_tables.rs:134:30: 134:55
		    6: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    7: <{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    8: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    9: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    10: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    11: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    12: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    13: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<DummyPlugin>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<DummyPlugin>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    14: falco_plugin::base::wrappers::plugin_init::<DummyPlugin>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    15: DUMMY_PLUGIN::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    16: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:220:31: 220:52
		    17: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    18: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    19: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    20: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/async_tables.rs:221:9: 221:58
		    21: tests::native::test_async
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    22: tests::native::test_async::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: attempting a read access using <301640> at alloc95909[0x178], but that tag does not exist in the borrow stack for this location
	 --> falco_plugin_runner/src/plugin/source.rs:80:24
	  |
	  = note: this error occurs as part of an access at alloc95909[0x178..0x180]
	  |
	  = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	  = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <301640> was created by a SharedReadOnly retag at offsets [0x178..0x180]
	 --> falco_plugin/src/source/wrappers.rs:246:24
	help: <301640> was later invalidated at offsets [0x178..0x180] by a Unique retag
	 --> falco_plugin/src/source/wrappers.rs:256:4
	  = note: this is on thread `tests::native::`
	  = note: stack backtrace:
		  0: falco_plugin_runner::plugin::source::SourcePlugin::next_event
		      at falco_plugin_runner/src/plugin/source.rs:80:25: 80:29
		  1: falco_plugin_runner::plugin::Plugin::next_event
		      at falco_plugin_runner/src/plugin/mod.rs:435:25: 435:44
		  2: falco_plugin_runner::CapturingPluginRunner::get_next_event
		      at falco_plugin_runner/src/lib.rs:88:25: 88:44
		  3: falco_plugin_runner::CapturingPluginRunner::next_event
		      at falco_plugin_runner/src/lib.rs:105:21: 105:42
		  4: <falco_plugin_tests::native::NativeCapturingTestDriver as falco_plugin_tests::CapturingTestDriver>::next_event
		      at falco_plugin_tests/src/native.rs:93:15: 93:34
		  5: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
		      at falco_plugin_tests/tests/async_tables.rs:226:9: 226:28
		  6: tests::native::test_async
		      at falco_plugin_tests/src/lib.rs:35:17: 35:57
		  7: tests::native::test_async::{closure#0}
		      at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... error: Undefined Behavior: not granting access to tag <124905> because that would remove [Unique for <340142>] which is strongly protected
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ Undefined Behavior occurred here
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <124905> was created by a SharedReadWrite retag at offsets [0x0..0x48]
	   --> falco_plugin/src/tables/export/table_box.rs:56:18
	help: <340142> is this argument
	   --> falco_plugin/src/tables/export/table.rs:151:30
	    = note: this is on thread `tests::native::`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::tables::export::table::TableData<u64, TableEntry>>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::export::wrappers::read_entry_field::<u64, TableEntry>
			at falco_plugin/src/tables/export/wrappers.rs:96:27: 96:67
		    2: falco_plugin_runner::tables::read_entry_field
			at falco_plugin_runner/src/tables.rs:100:14: 100:56
		    3: <falco_plugin::tables::LazyTableReader<'_> as falco_plugin::tables::vtable::reader::private::TableReaderImpl>::read_entry_field
			at falco_plugin/src/tables/vtable/reader.rs:165:13: 167:69
		    4: falco_plugin::tables::import::entry::raw::RawEntry::read_field_with_assoc::<'_, u64, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/entry/raw.rs:25:21: 25:96
		    5: falco_plugin::tables::import::Entry::<std::sync::Arc<ImportedTableMetadata>>::read_field::<u64, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/entry/mod.rs:55:13: 56:96
		    6: _::<impl __falco_plugin_private_ImportedTableMetadata::num::get_num<'_> for falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>>::get_num::<falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/macros.rs:92:21: 92:62
		    7: <DummyPlugin as falco_plugin::parse::ParsePlugin>::parse_event::{closure#0}
			at falco_plugin_tests/tests/async_tables.rs:158:27: 158:57
		    8: falco_plugin::tables::import::Table::<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut::<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}
			at falco_plugin/src/tables/import/table/mod.rs:271:13: 271:29
		    9: falco_plugin::tables::import::RawTable::iter_entries_mut::<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}
			at falco_plugin/src/tables/import/table/raw.rs:293:17: 293:32
		    10: falco_plugin::tables::import::table::raw::iter_inner::iter_wrapper::<{closure@falco_plugin::tables::import::RawTable::iter_entries_mut<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}>
			at falco_plugin/src/tables/import/table/raw.rs:394:23: 394:37
		    11: falco_plugin::tables::export::wrappers::iterate_entries::<u64, TableEntry>::{closure#0}
			at falco_plugin/src/tables/export/wrappers.rs:151:13: 151:31
		    12: falco_plugin::tables::export::table::TableData::<u64, TableEntry>::iterate_entries::<{closure@falco_plugin::tables::export::wrappers::iterate_entries<u64, TableEntry>::{closure#0}}>
			at falco_plugin/src/tables/export/table.rs:156:17: 156:45
		    13: falco_plugin::tables::export::wrappers::iterate_entries::<u64, TableEntry>
			at falco_plugin/src/tables/export/wrappers.rs:149:9: 152:11
		    14: falco_plugin_runner::tables::iterate_entries
			at falco_plugin_runner/src/tables.rs:118:14: 118:49
		    15: falco_plugin::tables::import::table::raw::iter_inner::<{closure@falco_plugin::tables::import::RawTable::iter_entries_mut<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}>
			at falco_plugin/src/tables/import/table/raw.rs:404:9: 408:10
		    16: falco_plugin::tables::import::RawTable::iter_entries_mut::<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/table/raw.rs:282:12: 295:10
		    17: falco_plugin::tables::import::Table::<u64, falco_plugin::tables::import::Entry<std::sync::Arc<ImportedTableMetadata>>, std::sync::Arc<ImportedTableMetadata>>::iter_entries_mut::<{closure@falco_plugin_tests/tests/async_tables.rs:157:52: 157:55}, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/table/mod.rs:269:9: 272:11
		    18: <DummyPlugin as falco_plugin::parse::ParsePlugin>::parse_event
			at falco_plugin_tests/tests/async_tables.rs:156:9: 163:15
		    19: falco_plugin::parse::wrappers::plugin_parse_event::<DummyPlugin>::{closure#0}
			at falco_plugin/src/parse/wrappers.rs:118:13: 118:67
		    20: <{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    21: <std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    22: falco_plugin::error::panic::catch_panic::<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    23: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<(), anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    24: std::panicking::catch_unwind::<std::result::Result<(), anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    25: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}>>::{closure#0}}, std::result::Result<(), anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    26: falco_plugin::error::panic::catch_panic::<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<DummyPlugin>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    27: falco_plugin::parse::wrappers::plugin_parse_event::<DummyPlugin>
			at falco_plugin/src/parse/wrappers.rs:117:9: 119:12
		    28: falco_plugin_runner::plugin::parse::ParsePlugin::on_event
			at falco_plugin_runner/src/plugin/parse.rs:53:27: 53:73
		    29: falco_plugin_runner::plugin::Plugin::on_event
			at falco_plugin_runner/src/plugin/mod.rs:457:13: 457:34
		    30: falco_plugin_runner::CapturingPluginRunner::next_event
			at falco_plugin_runner/src/lib.rs:108:13: 108:36
		    31: <falco_plugin_tests::native::NativeCapturingTestDriver as falco_plugin_tests::CapturingTestDriver>::next_event
			at falco_plugin_tests/src/native.rs:93:15: 93:34
		    32: tests::test_async::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/async_tables.rs:226:9: 226:28
		    33: tests::native::test_async
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    34: tests::native::test_async::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test tests::native::test_async ... warning: integer-to-pointer cast
	   --> /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/word_lock.rs:320:9
	    |
	320 |         (self & QUEUE_MASK) as *const ThreadData
	    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ integer-to-pointer cast
	    |
	    = help: this program is using integer-to-pointer casts or (equivalently) `ptr::with_exposed_provenance`, which means that Miri might miss pointer bugs in this program
	    = help: see https://doc.rust-lang.org/nightly/std/ptr/fn.with_exposed_provenance.html for more details on that operation
	    = help: to ensure that Miri does not miss bugs in your program, use Strict Provenance APIs (https://doc.rust-lang.org/nightly/std/ptr/index.html#strict-provenance, https://crates.io/crates/sptr) instead
	    = help: you can then set `MIRIFLAGS=-Zmiri-strict-provenance` to ensure you are not relying on `with_exposed_provenance` semantics
	    = help: alternatively, `MIRIFLAGS=-Zmiri-permissive-provenance` disables this warning
	    = note: this is on thread `unnamed-2`
	    = note: stack backtrace:
		    0: <usize as parking_lot_core::word_lock::LockState>::queue_head
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/word_lock.rs:320:9: 320:49
		    1: parking_lot_core::word_lock::WordLock::unlock
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/word_lock.rs:104:39: 104:57
		    2: parking_lot_core::parking_lot::park::<{closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#0}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#1}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#2}}>::{closure#0}
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/parking_lot.rs:624:9: 624:30
		    3: parking_lot_core::parking_lot::with_thread_data::<parking_lot_core::parking_lot::ParkResult, {closure@parking_lot_core::parking_lot::park<{closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#0}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#1}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#2}}>::{closure#0}}>
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/parking_lot.rs:207:5: 207:36
		    4: parking_lot_core::parking_lot::park::<{closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#0}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#1}}, {closure@parking_lot::raw_rwlock::RawRwLock::lock_common<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>::{closure#2}}>
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.11/src/parking_lot.rs:600:5: 705:7
		    5: parking_lot::raw_rwlock::RawRwLock::lock_common::<{closure@parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow::{closure#0}}>
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.4/src/raw_rwlock.rs:1123:17: 1123:96
		    6: parking_lot::raw_rwlock::RawRwLock::lock_exclusive_slow
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.4/src/raw_rwlock.rs:636:26: 641:10
		    7: <parking_lot::raw_rwlock::RawRwLock as lock_api::rwlock::RawRwLock>::lock_exclusive
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.4/src/raw_rwlock.rs:73:26: 73:56
		    8: lock_api::rwlock::RwLock::<parking_lot::raw_rwlock::RawRwLock, std::collections::BTreeMap<u64, std::sync::Arc<lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, falco_plugin::tables::export::entry::extensible::ExtensibleEntry<TableEntry>>>>>::write
			at /home/blackfire/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.13/src/rwlock.rs:500:9: 500:34
		    9: <DummyAsyncPlugin as falco_plugin::async_event::AsyncEventPlugin>::start_async::{closure#0}
			at falco_plugin_tests/tests/async_tables.rs:84:13: 84:25
		    10: falco_plugin::async_event::BackgroundTask::spawn::<{closure@falco_plugin_tests/tests/async_tables.rs:81:72: 81:79}>::{closure#0}
			at falco_plugin/src/async_event/background_task.rs:97:17: 97:23
	note: the last function in that backtrace got called indirectly due to this code
	   --> falco_plugin/src/async_event/background_task.rs:95:11

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	error: memory leaked: alloc93616 (Rust heap, size: 24, align: 8), allocated here:
	 --> falco_plugin/src/source/wrappers.rs:162:30
	  |
	  = note: stack backtrace:
		  0: falco_plugin::source::wrappers::plugin_open::<panic::listen::ListenablePlugin>
		      at falco_plugin/src/source/wrappers.rs:162:31: 165:19
		  1: falco_plugin_runner::plugin::source::SourcePlugin::on_capture_start
		      at falco_plugin_runner/src/plugin/source.rs:36:33: 36:67
		  2: falco_plugin_runner::plugin::Plugin::on_capture_start
		      at falco_plugin_runner/src/plugin/mod.rs:294:13: 294:38
		  3: falco_plugin_runner::PluginRunner::start_capture
		      at falco_plugin_runner/src/lib.rs:58:13: 59:36
		  4: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::start_capture
		      at falco_plugin_tests/src/native.rs:77:25: 77:47
		  5: panic::listen::test_listen_panic::<falco_plugin_tests::native::NativeTestDriver>
		      at falco_plugin_tests/tests/panic/listen.rs:68:15: 68:88
		  6: panic::listen::native::test_listen_panic
		      at falco_plugin_tests/src/lib.rs:35:17: 35:57
		  7: panic::listen::native::test_listen_panic::{closure#0}
		      at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
gnosek added 4 commits June 3, 2026 11:09
	test native::test_parse_table_api ... error: Undefined Behavior: trying to retag from <180676> for Unique permission at alloc56556[0x60], but that tag does not exist in the borrow stack for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ this error occurs as part of retag at alloc56556[0x60..0xf8]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <180676> was created by a SharedReadWrite retag at offsets [0x60..0xf8]
	   --> falco_plugin/src/tables/export/vtable.rs:86:18
	help: <180676> was later invalidated at offsets [0x0..0x110] by a Unique retag
	   --> falco_plugin/src/tables/export/vtable.rs:87:29
	    = note: this is on thread `native::test_pa`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::falco_plugin_api::ss_plugin_table_input>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::import::RawTable::with_subtable::<u64, {closure@<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::Value>::get_assoc_from_raw_table::{closure#0}}, std::result::Result<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>, falco_plugin::anyhow::Error>>
			at falco_plugin/src/tables/import/table/raw.rs:332:30: 332:44
		    2: <falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::Value>::get_assoc_from_raw_table
			at falco_plugin/src/tables/import/table/mod.rs:314:13: 316:15
		    3: falco_plugin::tables::import::RawTable::get_field::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>>
			at falco_plugin/src/tables/import/table/raw.rs:112:30: 112:88
		    4: <falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    5: <std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    6: falco_plugin::tables::import::table_input::<impl falco_plugin::tables::TablesInput<'_>>::get_table::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields>>, u64>
			at falco_plugin/src/tables/import/table_input.rs:30:28: 30:58
		    7: <falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/src/plugin_collection/extract/extra_fields.rs:30:31: 30:60
		    8: falco_plugin::base::wrappers::plugin_init::<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    9: <{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    10: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    11: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    12: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    13: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    14: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    15: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    16: falco_plugin::base::wrappers::plugin_init::<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    17: falco_plugin_tests::plugin_collection::extract::extra_fields::EXTRACT_EXTRA_FIELDS_API::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    18: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:220:31: 220:52
		    19: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    20: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    21: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    22: test_parse_table_api::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/parse_table_api.rs:25:26: 26:57
		    23: native::test_parse_table_api
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    24: native::test_parse_table_api::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test native::test_parse_table_api ... error: Undefined Behavior: trying to retag from <184210> for Unique permission at alloc57249[0x10], but that tag only grants SharedReadOnly permission for this location
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ this error occurs as part of retag at alloc57249[0x10..0x11]
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <184210> was created by a SharedReadOnly retag at offsets [0x10..0x28]
	   --> falco_plugin/src/tables/export/wrappers.rs:371:27
	    = note: this is on thread `native::test_pa`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::falco_plugin_api::ss_plugin_table_field_t>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::import::RawTable::add_field::<falco_plugin::tables::import::Bool>
			at falco_plugin/src/tables/import/table/raw.rs:137:13: 138:26
		    2: <falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    3: <std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    4: <falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::Value>::get_assoc_from_raw_table::{closure#0}
			at falco_plugin/src/tables/import/table/mod.rs:315:17: 315:47
		    5: falco_plugin::tables::import::RawTable::with_subtable::<u64, {closure@<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::Value>::get_assoc_from_raw_table::{closure#0}}, std::result::Result<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>, falco_plugin::anyhow::Error>>
			at falco_plugin/src/tables/import/table/raw.rs:346:19: 346:35
		    6: <falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::Value>::get_assoc_from_raw_table
			at falco_plugin/src/tables/import/table/mod.rs:314:13: 316:15
		    7: falco_plugin::tables::import::RawTable::get_field::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>>
			at falco_plugin/src/tables/import/table/raw.rs:112:30: 112:88
		    8: <falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/macros.rs:11:31: 11:78
		    9: <std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields> as falco_plugin::tables::import::traits::TableMetadata>::new
			at falco_plugin/src/tables/import/traits/mod.rs:24:21: 24:52
		    10: falco_plugin::tables::import::table_input::<impl falco_plugin::tables::TablesInput<'_>>::get_table::<falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::RemainingCounterImportMetadataWithExtraFields>>, u64>
			at falco_plugin/src/tables/import/table_input.rs:30:28: 30:58
		    11: <falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields as falco_plugin::base::Plugin>::new
			at falco_plugin_tests/src/plugin_collection/extract/extra_fields.rs:30:31: 30:60
		    12: falco_plugin::base::wrappers::plugin_init::<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}
			at falco_plugin/src/base/wrappers.rs:107:13: 107:50
		    13: <{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    14: <std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    15: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    16: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    17: std::panicking::catch_unwind::<std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    18: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    19: falco_plugin::error::panic::catch_panic::<*mut falco_plugin::base::wrappers::PluginWrapper<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>, std::panic::AssertUnwindSafe<{closure@falco_plugin::base::wrappers::plugin_init<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    20: falco_plugin::base::wrappers::plugin_init::<falco_plugin_tests::plugin_collection::extract::extra_fields::ExtractExtraFields>
			at falco_plugin/src/base/wrappers.rs:77:15: 110:7
		    21: falco_plugin_tests::plugin_collection::extract::extra_fields::EXTRACT_EXTRA_FIELDS_API::{constant#0}::plugin_init
			at falco_plugin/src/base/wrappers.rs:276:13: 276:48
		    22: falco_plugin_runner::plugin::Plugin::init
			at falco_plugin_runner/src/plugin/mod.rs:220:31: 220:52
		    23: falco_plugin_runner::plugin::Plugin::new
			at falco_plugin_runner/src/plugin/mod.rs:128:9: 128:26
		    24: falco_plugin_runner::PluginRunner::register_plugin
			at falco_plugin_runner/src/lib.rs:50:22: 50:74
		    25: <falco_plugin_tests::native::NativeTestDriver as falco_plugin_tests::TestDriver>::register_plugin
			at falco_plugin_tests/src/native.rs:46:9: 46:44
		    26: test_parse_table_api::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/parse_table_api.rs:25:26: 26:57
		    27: native::test_parse_table_api
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    28: native::test_parse_table_api::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
	test native::test_parse_table_nested ... error: Undefined Behavior: not granting access to tag <315709> because that would remove [SharedReadOnly for <335407>] which is strongly protected
	   --> .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57
	    |
	586 |         if self.is_null() { None } else { unsafe { Some(&mut *self) } }
	    |                                                         ^^^^^^^^^^ Undefined Behavior occurred here
	    |
	    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
	    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
	help: <315709> was created by a SharedReadWrite retag at offsets [0x0..0x58]
	   --> falco_plugin/src/tables/export/table_box.rs:56:18
	help: <335407> is this argument
	   --> falco_plugin/src/tables/export/table.rs:151:30
	    = note: this is on thread `native::test_pa`
	    = note: stack backtrace:
		    0: std::ptr::mut_ptr::<impl *mut falco_plugin::tables::export::table::TableData<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>>::as_mut::<'_>
			at .../lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:586:57: 586:67
		    1: falco_plugin::tables::export::wrappers::write_entry_field::<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>
			at falco_plugin/src/tables/export/wrappers.rs:275:27: 275:67
		    2: falco_plugin_runner::tables::write_entry_field
			at falco_plugin_runner/src/tables.rs:169:14: 169:59
		    3: <falco_plugin::tables::LazyTableWriter<'_> as falco_plugin::tables::vtable::writer::private::TableWriterImpl>::write_entry_field
			at falco_plugin/src/tables/vtable/writer.rs:210:16: 215:14
		    4: falco_plugin::tables::import::entry::raw::RawEntry::write_field::<falco_plugin::tables::LazyTableWriter<'_>>
			at falco_plugin/src/tables/import/entry/raw.rs:41:18: 41:90
		    5: falco_plugin::tables::import::Entry::<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::write_field::<falco_plugin::tables::import::Bool, falco_plugin::tables::LazyTableWriter<'_>>
			at falco_plugin/src/tables/import/entry/mod.rs:71:13: 72:72
		    6: <falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>> as falco_plugin::tables::import::traits::EntryWrite<&falco_plugin::tables::import::Field<falco_plugin::tables::import::Bool, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>>, falco_plugin::tables::import::Bool>>::write_field::<falco_plugin::tables::LazyTableWriter<'_>>
			at falco_plugin/src/tables/import/entry/mod.rs:86:9: 86:53
		    7: falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::_::<impl falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::nested_accessors::is_final::set_is_final<'_> for falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>>::set_is_final::<falco_plugin::tables::LazyTableWriter<'_>>
			at falco_plugin/src/tables/import/macros.rs:132:21: 132:70
		    8: <falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}
			at falco_plugin_tests/src/plugin_collection/parse/nested_table_extra_fields.rs:71:13: 71:46
		    9: falco_plugin::tables::import::Table::<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut::<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}
			at falco_plugin/src/tables/import/table/mod.rs:271:13: 271:29
		    10: falco_plugin::tables::import::RawTable::iter_entries_mut::<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}
			at falco_plugin/src/tables/import/table/raw.rs:293:17: 293:32
		    11: falco_plugin::tables::import::table::raw::iter_inner::iter_wrapper::<{closure@falco_plugin::tables::import::RawTable::iter_entries_mut<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}>
			at falco_plugin/src/tables/import/table/raw.rs:394:23: 394:37
		    12: falco_plugin::tables::export::wrappers::iterate_entries::<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>::{closure#0}
			at falco_plugin/src/tables/export/wrappers.rs:151:13: 151:31
		    13: falco_plugin::tables::export::table::TableData::<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>::iterate_entries::<{closure@falco_plugin::tables::export::wrappers::iterate_entries<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>::{closure#0}}>
			at falco_plugin/src/tables/export/table.rs:156:17: 156:45
		    14: falco_plugin::tables::export::wrappers::iterate_entries::<u64, falco_plugin_tests::plugin_collection::tables::remaining_export::Countdown>
			at falco_plugin/src/tables/export/wrappers.rs:149:9: 152:11
		    15: falco_plugin_runner::tables::iterate_entries
			at falco_plugin_runner/src/tables.rs:118:14: 118:49
		    16: falco_plugin::tables::import::table::raw::iter_inner::<{closure@falco_plugin::tables::import::RawTable::iter_entries_mut<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}>
			at falco_plugin/src/tables/import/table/raw.rs:404:9: 408:10
		    17: falco_plugin::tables::import::RawTable::iter_entries_mut::<{closure@falco_plugin::tables::import::Table<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>::{closure#0}}, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/table/raw.rs:282:12: 295:10
		    18: falco_plugin::tables::import::Table::<u64, falco_plugin::tables::import::Entry<std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>, std::sync::Arc<falco_plugin_tests::plugin_collection::tables::remaining_import_extra_fields::CountdownImportMetadataWithExtraFields>>::iter_entries_mut::<{closure@<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event::{closure#1}}, falco_plugin::tables::LazyTableReader<'_>>
			at falco_plugin/src/tables/import/table/mod.rs:269:9: 272:11
		    19: <falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields as falco_plugin::parse::ParsePlugin>::parse_event
			at falco_plugin_tests/src/plugin_collection/parse/nested_table_extra_fields.rs:63:9: 74:11
		    20: falco_plugin::parse::wrappers::plugin_parse_event::<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}
			at falco_plugin/src/parse/wrappers.rs:118:13: 118:67
		    21: <{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}} as std::ops::FnOnce<()>>::call_once - shim
			at .../lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5: 250:71
		    22: <std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}> as std::ops::FnOnce<()>>::call_once
			at .../lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9: 274:19
		    23: falco_plugin::error::panic::catch_panic::<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}>>::{closure#0}
			at falco_plugin/src/error/panic.rs:10:38: 10:41
		    24: std::panicking::catch_unwind::do_call::<{closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<(), falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:581:40: 581:43
		    25: std::panicking::catch_unwind::<std::result::Result<(), falco_plugin::anyhow::Error>, {closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}>>::{closure#0}}>
			at .../lib/rustlib/src/rust/library/std/src/panicking.rs:544:19: 544:88
		    26: std::panic::catch_unwind::<{closure@falco_plugin::error::panic::catch_panic<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}>>::{closure#0}}, std::result::Result<(), falco_plugin::anyhow::Error>>
			at .../lib/rustlib/src/rust/library/std/src/panic.rs:359:14: 359:40
		    27: falco_plugin::error::panic::catch_panic::<(), std::panic::AssertUnwindSafe<{closure@falco_plugin::parse::wrappers::plugin_parse_event<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>::{closure#0}}>>
			at falco_plugin/src/error/panic.rs:10:5: 10:42
		    28: falco_plugin::parse::wrappers::plugin_parse_event::<falco_plugin_tests::plugin_collection::parse::nested_table_extra_fields::ParseNestedTableExtraFields>
			at falco_plugin/src/parse/wrappers.rs:117:9: 119:12
		    29: falco_plugin_runner::plugin::parse::ParsePlugin::on_event
			at falco_plugin_runner/src/plugin/parse.rs:53:27: 53:73
		    30: falco_plugin_runner::plugin::Plugin::on_event
			at falco_plugin_runner/src/plugin/mod.rs:468:13: 468:34
		    31: falco_plugin_runner::CapturingPluginRunner::next_event
			at falco_plugin_runner/src/lib.rs:108:13: 108:36
		    32: <falco_plugin_tests::native::NativeCapturingTestDriver as falco_plugin_tests::CapturingTestDriver>::next_event
			at falco_plugin_tests/src/native.rs:93:15: 93:34
		    33: test_parse_table_nested::<falco_plugin_tests::native::NativeTestDriver>
			at falco_plugin_tests/tests/parse_table_nested.rs:46:17: 46:36
		    34: native::test_parse_table_nested
			at falco_plugin_tests/src/lib.rs:35:17: 35:57
		    35: native::test_parse_table_nested::{closure#0}
			at falco_plugin_tests/src/lib.rs:34:23: 34:23

Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
Signed-off-by: Grzegorz Nosek <grzegorz.nosek@sysdig.com>
@gnosek

gnosek commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator Author

/unhold

@poiana
poiana merged commit bc33499 into falcosecurity:main Jun 3, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants