Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simulate NMR and OS API failures #2101

Closed
saxena-anurag opened this issue Feb 17, 2023 · 15 comments · Fixed by #2253, #2268, #2273, #2290 or #2263
Closed

Simulate NMR and OS API failures #2101

saxena-anurag opened this issue Feb 17, 2023 · 15 comments · Fixed by #2253, #2268, #2273, #2290 or #2263
Assignees
Labels
bug Something isn't working enhancement New feature or request tests triaged Discussed in a triage meeting
Milestone

Comments

@saxena-anurag
Copy link
Contributor

saxena-anurag commented Feb 17, 2023

This issue is to add tests for the following:

Add tests to simulate systematic failure of NMR and OS API failures for both ebpfcore and netebpfext.
This can use the same framework currently used for low memory simulation in user mode.

NMR APIs:

  1. NmrRegisterProvider
  2. NmrDeregisterProvider
  3. NmrWaitForProviderDeregisterComplete
  4. NmrClientAttachProvider
  5. NmrRegisterClient
  6. NmrDeregisterClient
  7. NmrWaitForClientDeregisterComplete

OS APIs:
8. ebpf_platform_user.cpp
9. fwp_um.cpp
10. kernel_um.cpp
11. ndis_um.cpp

@dthaler dthaler added the enhancement New feature or request label Feb 27, 2023
@dahavey dahavey added the triaged Discussed in a triage meeting label Feb 27, 2023
@dahavey dahavey added this to the 2303 milestone Feb 27, 2023
@shankarseal shankarseal assigned shpalani and unassigned shpalani and shankarseal Mar 1, 2023
@shankarseal
Copy link
Collaborator

@shpalani please work with @saxena-anurag to address this test issue. In the user mode test, we shim all OS system calls. The plan is to randomly fail those calls and then see if that results in a crash or hang.

@shpalani
Copy link
Collaborator

shpalani commented Mar 21, 2023

Pasting the crashes seen with NMR APIs fault injection code in nmr_um.cpp


sock_addr_context

C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp(668)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp(48): PASSED:
REQUIRE( (((NTSTATUS)(status)) >= 0) )
with expansion:
true

C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp(51): PASSED:
REQUIRE( ebpf_platform_initiate() == EBPF_SUCCESS )
with expansion:
0 == 0

C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp(55): PASSED:
REQUIRE( (((NTSTATUS)(status)) >= 0) )
with expansion:
true

C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp(55): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal


cgroup_sockops_load_test

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1152)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(631): PASSED:
REQUIRE( ebpf_core_initiate() == EBPF_SUCCESS )
with expansion:
0 == 0

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(633): PASSED:
REQUIRE( ebpf_api_initiate() == EBPF_SUCCESS )
with expansion:
0 == 0

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(633): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal


xdp-encap-reflect-v6-jit

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1758)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(631): PASSED:
REQUIRE( ebpf_core_initiate() == EBPF_SUCCESS )
with expansion:
0 == 0

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(633): PASSED:
REQUIRE( ebpf_api_initiate() == EBPF_SUCCESS )
with expansion:
0 == 0

C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp(633): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal

Assertion failed: it->second.binding_count == 0, file C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_impl.cpp, line 310

C:\ebpf\ebpf-for-windows\tests\libs\util\program_helper.cpp(32): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal


cgroup_sockaddr_load_test_"authorize_recv_accept6"_EBPF_ATTACH_TYPE_CGROUP_INE-
T6_RECV_ACCEPT_native

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1152)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1152): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal

bad_map_name-native

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(985)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(985): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal


xdp-reflect-v6-jit

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1756)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1756): FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGSEGV - Segmentation violation signal

@shpalani
Copy link
Collaborator

shpalani commented Mar 21, 2023

Memory leaks reported:

  1. _load_section_data_information(): Multiple test cases reported memory leaks in this function in various ebpf_allocate callers, when failed.
C:\ebpf\ebpf-for-windows\x64\Debug>unit_tests.exe cgroup_sockops_load_test
Filters: "cgroup_sockops_load_test"
Randomness seeded to: 3766561317
Leak of 16 bytes at 2208473331968
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 241 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:415)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 32 bytes at 2208517734832
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 729 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:459)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473329968
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 205 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:409)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473328768
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 205 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:409)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 20 bytes at 2208473393328
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    ebpf_duplicate_string + 74 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_object.c:394)
    _load_section_data_information + 660 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:453)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 32 bytes at 2208517736752
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 729 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:459)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473329488
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 241 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:415)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 11 bytes at 2208473390448
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    ebpf_duplicate_string + 74 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_object.c:394)
    _load_section_data_information + 660 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:453)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473332448
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 205 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:409)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473331648
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 241 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:415)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 8 bytes at 2208473332608
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    ebpf_duplicate_string + 74 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_object.c:394)
    _load_section_data_information + 660 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:453)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 32 bytes at 2208517736848
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 729 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:459)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473328288
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 205 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:409)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 16 bytes at 2208473328848
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 241 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:415)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 4 bytes at 2208518269280
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    ebpf_duplicate_string + 74 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_object.c:394)
    _load_section_data_information + 660 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:453)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Leak of 32 bytes at 2208517735888
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    _load_section_data_information + 729 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:459)
    ebpf_store_load_section_information + 512 (C:\ebpf\ebpf-for-windows\libs\api_common\store_helper_internal.cpp:545)
    _load_all_section_data_information + 84 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:598)
    load_ebpf_provider_data + 31 (C:\ebpf\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:693)
    ebpf_api_initiate + 490 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:214)
    _test_helper_end_to_end::_test_helper_end_to_end + 1132 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:633)
    _cgroup_load_test + 94 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1090)
    CATCH2_INTERNAL_TEST_75 + 47 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:1160)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Assertion failed: _allocations.empty(), file C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_leak_detector.cpp, line 59

C:\ebpf\ebpf-for-windows\x64\Debug>
  1. ebpf_store_load_program_information(): Memory leak reported in this function
  1. _initialize_ebpf_object_from_native_file(): memory leak in this function in various ebpf_allocate callers when failed.
-------------------------------------------------------------------------------
divide_by_zero-native
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(979)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(521): FAILED:
  REQUIRE( result == 0 )
with expansion:
  -12 == 0

Leak of 4 bytes at 2234718646464
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:398)
    ebpf_duplicate_string + 74 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_object.c:394)
    _initialize_ebpf_object_from_native_file + 496 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:1724)
    _initialize_ebpf_object_from_file + 230 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:1815)
    ebpf_object_open + 800 (C:\ebpf\ebpf-for-windows\libs\api\ebpf_api.cpp:2307)
    bpf_object__open_file + 247 (C:\ebpf\ebpf-for-windows\libs\api\libbpf_object.cpp:101)
    bpf_object__open + 22 (C:\ebpf\ebpf-for-windows\libs\api\libbpf_object.cpp:90)
    ebpf_program_load + 139 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:357)
    divide_by_zero_test_um + 417 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:515)
    CATCH2_INTERNAL_TEST_9 + 16 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:979)
    Catch::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_case_registry_impl.cpp:150)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:538)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:503)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:233)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1033 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

Assertion failed: _allocations.empty(), file C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_leak_detector.cpp, line 59

---
0:000> dt _ebpf_fault_injection_singleton
unit_tests!_ebpf_fault_injection_singleton
   +0x000 _Mypair          : std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1>
0:000> dx -r1 (*((unit_tests!std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1> *)0x7ff7fdd805a0))
(*((unit_tests!std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1> *)0x7ff7fdd805a0))                 : default_delete [Type: std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1>]
    [<Raw View>]     [Type: std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1>]
0:000> dx -r1 -nv (*((unit_tests!std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1> *)0x7ff7fdd805a0))
(*((unit_tests!std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1> *)0x7ff7fdd805a0))                 : default_delete [Type: std::_Compressed_pair<std::default_delete<_ebpf_fault_injection>,_ebpf_fault_injection *,1>]
    [+0x000] _Myval2          : 0x1903fa53cb0 [Type: _ebpf_fault_injection *]
0:000> dx -r1 ((unit_tests!_ebpf_fault_injection *)0x1903fa53cb0)
((unit_tests!_ebpf_fault_injection *)0x1903fa53cb0)                 : 0x1903fa53cb0 [Type: _ebpf_fault_injection *]
    [+0x000] _base_address    : 0x7ff7fd550000 [Type: unsigned __int64]
    [+0x008] _iteration       : 0x2 [Type: unsigned __int64]
    [+0x010] _log_file        [Type: std::basic_ofstream<char,std::char_traits<char> >]
    [+0x118] _fault_hash      : { size=0x128 } [Type: std::unordered_set<std::vector<unsigned __int64,std::allocator<unsigned __int64> >,_ebpf_fault_injection::_stack_hasher,std::equal_to<std::vector<unsigned __int64,std::allocator<unsigned __int64> > >,std::allocator<std::vector<unsigned __int64,std::allocator<unsigned __int64> > > >]
    [+0x168] _mutex           [Type: std::mutex]
    [+0x1b8] _stack_depth     : 0x4 [Type: unsigned __int64]
    [+0x1c0] _last_fault_stack : { size=16 } [Type: std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >]
0:000> dx -r1 (*((unit_tests!std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > *)0x1903fa53e70))
(*((unit_tests!std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > *)0x1903fa53e70))                 : { size=16 } [Type: std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >]
    [<Raw View>]     [Type: std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >]
    [capacity]       : 19
    [allocator]      : allocator [Type: std::_Compressed_pair<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::_Vector_val<std::_Simple_types<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,1>]
    [0]              : "NmrDeregisterClient + 15 D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp 95" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [1]              : "ebpf_extension_unload + 249 D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c 332" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [2]              : "_unload_all_native_modules + 230 D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp 288" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [3]              : "_test_helper_end_to_end::~_test_helper_end_to_end + 996 D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp 680" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [4]              : "`divide_by_zero_test_um'::`1'::dtor$0 + 28" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [5]              : "" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [6]              : "_NLG_Return2 + 12631" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [7]              : "_NLG_Return2 + 21819" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [8]              : "_NLG_Return2 + 7042" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [9]              : "_NLG_Return2 + 7687" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [10]             : "_CxxFrameHandler4 + 251" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [11]             : "__GSHandlerCheck_EH4 + 144 D:\a\_work\1\s\src\vctools\crt\vcstartup\src\gs\amd64\gshandlereh4.cpp 73" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [12]             : "_chkstk + 431" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [13]             : "RtlUnwindEx + 764" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [14]             : "_NLG_Return2 + 22799" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [15]             : "_NLG_Return2 + 2766" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]

@shpalani
Copy link
Collaborator

shpalani commented Mar 23, 2023

Status/Progress:

Memory leak: (Please refer to the above for the reports)

    • _load_section_data_information() : Fixed
    • ebpf_store_load_program_information(): Fixed
    • _initialize_ebpf_object_from_native_file(): Fixed

Crashes/SEGV: (Please refer to the above for the reports)

    • netebpfexit_unit.exe: sock_addr_context : Fixed
    • cgroup_sockops_load_test: Fixed
    • xdp-encap-reflect-v6-jit: Fixed
    • program_helper.cpp : Fixed
    • cgroup_sockaddr_load_test_"authorize_recv_accept6"_EBPF_ATTACH_TYPE_CGROUP_INET6_RECV_ACCEPT_native: Fixed
    • unit_tests.exe:bad_map_name-native: Fixed
    • unit_tests.exe: xdp-reflect-v6-jit : Fixed

@shpalani
Copy link
Collaborator

shpalani commented Mar 30, 2023

Fault Injection Analyzing: libs/platform/user/ebpf_platform_user.cpp

Memory Leaks:

1. ebpf_allocate_trampoline_table()
-------------------------------------------------------------------------------
trampoline_test
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp(537)
...............................................................................

C:\ebpf\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp(562): FAILED:
  REQUIRE( ebpf_update_trampoline_table( table, (sizeof(provider_helper_function_ids) / sizeof(provider_helper_function_ids[0])), provider_helper_function_ids, &helper_function_addresses1) == EBPF_SUCCESS )
with expansion:
  12 == 0

Leak of 24 bytes at 2223362922528
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:400)
    ebpf_allocate_trampoline_table + 241 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_trampoline.c:34)
    CATCH2_INTERNAL_TEST_14 + 508 (C:\ebpf\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp:556)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 16 bytes at 2223289222704
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:400)
    ebpf_map_memory + 39 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:508)
    ebpf_allocate_trampoline_table + 310 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_trampoline.c:41)
    CATCH2_INTERNAL_TEST_14 + 508 (C:\ebpf\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp:556)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Assertion failed: _allocations.empty(), file C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_leak_detector.cpp, line 69
-------------------------------------------------------------------------------
load_native_program_invalid5-non-preemptible
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(2627)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(2585): FAILED:
  REQUIRE( result == expected_result )
with expansion:
  -12 == -22

Leak of 8 bytes at 2748091258560
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091254480
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091254400
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251280
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091257520
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253280
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251200
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256240
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091252160
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 1152 bytes at 2748092019152
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_allocate_with_tag + 24 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:416)
    ebpf_epoch_allocate_with_tag + 78 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:441)
    ebpf_epoch_allocate + 25 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:452)
    ebpf_hash_table_create + 348 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_hash_table.c:604)
    ebpf_async_initiate + 342 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_async.c:26)
    ebpf_core_initiate + 150 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:175)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091252080
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253600
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253520
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251600
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091257760
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253680
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251680
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091258800
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091254560
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 24 bytes at 2748091234288
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_allocate_timer_work_item + 30 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1006)
    ebpf_epoch_initiate + 701 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:257)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091254720
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091259520
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251360
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256320
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091252400
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253840
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091259600
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251440
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256000
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251760
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091260000
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091255920
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091251840
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 144 bytes at 2748092029888
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_provider_load + 240 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_extension.c:393)
    ebpf_core_initiate + 380 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:204)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091252640
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256720
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091253920
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091252800
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091254000
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091258960
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256160
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256960
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091259120
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091259040
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091257680
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256880
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091258720
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 1120 bytes at 2748092024320
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_hash_table_create + 348 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_hash_table.c:604)
    ebpf_pinning_table_allocate + 464 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_pinning_table.c:71)
    ebpf_core_initiate + 183 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:182)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091257440
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091260480
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256560
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 8 bytes at 2748091256080
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_semaphore_create + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:1319)
    ebpf_epoch_initiate + 658 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:248)
    ebpf_core_initiate + 108 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:165)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 896 bytes at 2748062624720
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_allocate_with_tag + 24 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:416)
    ebpf_epoch_allocate_with_tag + 78 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:441)
    ebpf_epoch_allocate + 25 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_epoch.c:452)
    ebpf_hash_table_create + 348 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_hash_table.c:604)
    ebpf_state_initiate + 449 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_state.c:49)
    ebpf_core_initiate + 129 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:170)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 16 bytes at 2748091260720
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_pinning_table_allocate + 224 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_pinning_table.c:53)
    ebpf_core_initiate + 183 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:182)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 1120 bytes at 2748092025504
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_hash_table_create + 348 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_hash_table.c:604)
    ebpf_native_initiate + 368 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_native.c:491)
    ebpf_core_initiate + 246 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:197)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
Leak of 144 bytes at 2748092029680
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:407)
    ebpf_provider_load + 240 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_extension.c:393)
    ebpf_native_initiate + 484 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_native.c:497)
    ebpf_core_initiate + 246 (C:\ebpf\ebpf-for-windows\libs\execution_context\ebpf_core.c:197)
    _test_helper_end_to_end::_test_helper_end_to_end + 652 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635)
    CATCH2_INTERNAL_TEST_177 + 48 (C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:2629)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40
-------------------------------------------------------------------------------
show disassembly bpf.o nosuchsection
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\tests\end_to_end\netsh_test.cpp(94)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\netsh_test.cpp(94): FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  ebpf_provider_load failed

Leak of 144 bytes at 2090320206816
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:400)
    ebpf_provider_load + 240 (C:\ebpf\ebpf-for-windows\libs\platform\ebpf_extension.c:393)
    _program_info_provider::_program_info_provider + 556 (C:\ebpf\ebpf-for-windows\tests\end_to_end\helpers.h:554)
    _test_helper_libbpf::_test_helper_libbpf + 123 (C:\ebpf\ebpf-for-windows\tests\end_to_end\test_helper.cpp:710)
    _test_helper_netsh::_test_helper_netsh + 23 (C:\ebpf\ebpf-for-windows\tests\end_to_end\netsh_test.cpp:34)
    CATCH2_INTERNAL_TEST_4 + 70 (C:\ebpf\ebpf-for-windows\tests\end_to_end\netsh_test.cpp:106)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:509)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:336)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
    RtlUserThreadStart + 40

@shpalani
Copy link
Collaborator

shpalani commented Apr 3, 2023

SIGSEGV crashes:

1. 
0.000 s: **EBPF_OPERATION_MAP_UPDATE_ELEMENT**
=================================================================
==68940==ERROR: AddressSanitizer: heap-use-after-free on address 0x129905ccdb80 at pc 0x7ff90a781014 bp 0x008aaf34a780 sp 0x008aaf349ef0
READ of size 16 at 0x129905ccdb80 thread T0
    #0 0x7ff90a781042  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
    #1 0x7ff90a783f44  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180043f44)
    #2 0x7ff7eb79d592 in IsEqualGUID(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:161
    #3 0x7ff7eb7635dc in operator==(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:194
    #4 0x7ff7ebee468c in operator!=(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:199
    #5 0x7ff7ebef4133 in _nmr::bind(struct _nmr::client_registration &, struct _nmr::provider_registration &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:161
    #6 0x7ff7ebedda5c in _nmr::perform_bind<class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>>, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>>>(class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>> &, void *const, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:335
    #7 0x7ff7ebef755e in _nmr::register_client(struct _NPI_CLIENT_CHARACTERISTICS const &, void const *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:47
    #8 0x7ff7ebeafcf6 in NmrRegisterClient D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:77
    #9 0x7ff7ebe50a77 in ebpf_extension_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:269
    #10 0x7ff7ebdb4f39 in ebpf_program_load_providers D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:343
    #11 0x7ff7ebdb31f9 in ebpf_program_initialize D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:536
    #12 0x7ff7ebdad8d5 in ebpf_program_create_and_initialize D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:1501
    #13 0x7ff7eb73235c in create_various_objects(class std::vector<__int64, class std::allocator<__int64>> &, class std::map<class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>, __int64, struct std::less<class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>>, class std::allocator<struct std::pair<class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const, __int64>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:1096
    #14 0x7ff7eb706d11 in CATCH2_INTERNAL_TEST_44 D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:1460
    #15 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #16 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #17 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #18 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #19 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #20 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #21 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #22 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #23 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #24 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #25 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #26 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #27 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #28 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #29 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #30 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

0x129905ccdb80 is located 0 bytes inside of 144-byte region [0x129905ccdb80,0x129905ccdc10)
freed by thread T0 here:
    #0 0x7ff90a792814  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052814)
    #1 0x7ff7ebe6c386 in ebpf_free D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:450
    #2 0x7ff7ebe538a1 in ebpf_provider_unload D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:461
    #3 0x7ff7ebdc8da6 in ebpf_native_terminate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_native.c:316
    #4 0x7ff7ebd7e844 in ebpf_core_terminate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:260
    #5 0x7ff7ebd7be9c in ebpf_core_initiate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:229
    #6 0x7ff7eb6c5f62 in _ebpf_core_initializer::_ebpf_core_initializer(void) D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:94
    #7 0x7ff7eb6e2aac in CATCH2_INTERNAL_TEST_20 D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:653
    #8 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #9 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #10 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #11 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #12 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #13 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #14 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #15 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #16 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #17 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #18 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #19 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #20 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #21 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #22 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #23 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

previously allocated by thread T0 here:
    #0 0x7ff90a792676  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052676)
    #1 0x7ff7ebe69fe1 in ebpf_allocate D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:391
    #2 0x7ff7ebe524e4 in ebpf_provider_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:393
    #3 0x7ff7ebdc4db1 in ebpf_native_initiate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_native.c:497
    #4 0x7ff7ebd7bdce in ebpf_core_initiate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:197
    #5 0x7ff7eb6c5f62 in _ebpf_core_initializer::_ebpf_core_initializer(void) D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:94
    #6 0x7ff7eb6e2aac in CATCH2_INTERNAL_TEST_20 D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\unit\execution_context_unit_test.cpp:653
    #7 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #8 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #9 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #10 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #11 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #12 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #13 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #14 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #15 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #16 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #17 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #18 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #19 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #20 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #21 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #22 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

SUMMARY: AddressSanitizer: heap-use-after-free (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
Shadow bytes around the buggy address:
  0x04d226819b20: fa fa fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x04d226819b30: fd fd fd fd fa fa fa fa fa fa fa fa fd fd fd fd
  0x04d226819b40: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
  0x04d226819b50: fa fa fa fa fa fa fd fd fd fd fd fd fd fd fd fd
  0x04d226819b60: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
=>0x04d226819b70:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x04d226819b80: fd fd fa fa fa fa fa fa fa fa 00 00 00 00 00 00
  0x04d226819b90: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
  0x04d226819ba0: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
  0x04d226819bb0: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fd fd
  0x04d226819bc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==68940==ABORTING
2.
-------------------------------------------------------------------------------
droppacket-jit
-------------------------------------------------------------------------------
D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(979)
...............................................................................

D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(979): FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  ebpf_provider_load failed

0.000 s: droppacket-jit
=================================================================
==46308==ERROR: AddressSanitizer: heap-use-after-free on address 0x11625a829f00 at pc 0x7ff90deb1014 bp 0x00394a984ad0 sp 0x00394a984240
READ of size 16 at 0x11625a829f00 thread T0
    #0 0x7ff90deb1042  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
    #1 0x7ff90deb3f44  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180043f44)
    #2 0x7ff7eb79d592 in IsEqualGUID(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:161
    #3 0x7ff7eb7635dc in operator==(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:194
    #4 0x7ff7ebee468c in operator!=(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:199
    #5 0x7ff7ebef4133 in _nmr::bind(struct _nmr::client_registration &, struct _nmr::provider_registration &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:161
    #6 0x7ff7ebedda5c in _nmr::perform_bind<class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>>, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>>>(class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>> &, void *const, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:335
    #7 0x7ff7ebef755e in _nmr::register_client(struct _NPI_CLIENT_CHARACTERISTICS const &, void const *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:47
    #8 0x7ff7ebeafcf6 in NmrRegisterClient D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:77
    #9 0x7ff7ebe50a77 in ebpf_extension_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:269
    #10 0x7ff7ebdb4f39 in ebpf_program_load_providers D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:343
    #11 0x7ff7ebdb31f9 in ebpf_program_initialize D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:536
    #12 0x7ff7ebd75b4c in _ebpf_core_protocol_get_program_info D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:1379
    #13 0x7ff7ebd7c786 in ebpf_core_invoke_protocol_handler D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:2437
    #14 0x7ff7eb93d0f2 in GlueDeviceIoControl(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp:448
    #15 0x7ff7eb92bd03 in std::invoke<bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>(bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\type_traits:1572
    #16 0x7ff7eb91d401 in std::_Invoker_ret<int>::_Call<bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>(bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:672
    #17 0x7ff7eb94190b in std::_Func_impl_no_alloc<bool (__cdecl *)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), int, void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>::_Do_call(void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:833
    #18 0x7ff7eb7aae06 in std::_Func_class<int, void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>::operator()(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *) const C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:874
    #19 0x7ff7eb7ab9f1 in Platform::DeviceIoControl(__int64, unsigned int, void *, unsigned int, void *, unsigned int, unsigned int *, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\thunk\mock\mock.cpp:32
    #20 0x7ff7ebd17799 in invoke_ioctl<struct _ebpf_operation_get_program_info_request, class std::vector<unsigned char, class std::allocator<unsigned char>>>(struct _ebpf_operation_get_program_info_request &, class std::vector<unsigned char, class std::allocator<unsigned char>> &, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\device_helper.hpp:99
    #21 0x7ff7ebd23c79 in _get_program_info_data D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:187
    #22 0x7ff7ebd29f93 in get_program_type_windows(struct _GUID const &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:229
    #23 0x7ff7ebc92307 in ebpf_get_program_type_name D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:3517
    #24 0x7ff7ebc59d25 in _ebpf_pe_add_section D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:2191
    #25 0x7ff7ebe04895 in peparse::IterSec(struct peparse::_parsed_pe *, int (__cdecl *)(void *, unsigned __int64 const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, struct peparse::image_section_header const &, struct peparse::_bounded_buffer const *), void *) D:\a\ebpf-for-windows\ebpf-for-windows\external\pe-parse\pe-parser-library\src\parse.cpp:2707
    #26 0x7ff7ebc53c34 in _ebpf_enumerate_native_sections D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:2260
    #27 0x7ff7ebc66db0 in _initialize_ebpf_object_from_native_file D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:1713
    #28 0x7ff7ebc666fe in _initialize_ebpf_object_from_file D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:1829
    #29 0x7ff7ebc813f0 in ebpf_object_open(char const *, char const *, char const *, struct _GUID const *, struct _GUID const *, struct bpf_object **, char const **) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:2321
    #30 0x7ff7ebcf9dc9 in bpf_object__open_file D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\libbpf_object.cpp:103
    #31 0x7ff7ebcf9ab4 in bpf_object__open D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\libbpf_object.cpp:91
    #32 0x7ff7eb868a51 in ebpf_program_load(char const *, enum bpf_prog_type, enum _ebpf_execution_type, class std::unique_ptr<struct bpf_object, struct _close_bpf_object> *, int *, char const **) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:358
    #33 0x7ff7eb86002b in droppacket_test(enum _ebpf_execution_type) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:402
    #34 0x7ff7eb7f56ed in CATCH2_INTERNAL_TEST_3 D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:979
    #35 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #36 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #37 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #38 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #39 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #40 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #41 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #42 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #43 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #44 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #45 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #46 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #47 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #48 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #49 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #50 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

0x11625a829f00 is located 0 bytes inside of 144-byte region [0x11625a829f00,0x11625a829f90)
freed by thread T0 here:
    #0 0x7ff90dec2814  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052814)
    #1 0x7ff7ebe6c386 in ebpf_free D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:450
    #2 0x7ff7ebe538a1 in ebpf_provider_unload D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:461
    #3 0x7ff7eb77864c in CATCH2_INTERNAL_TEST_12 D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp:522
    #4 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #5 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #6 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #7 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #8 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #9 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #10 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #11 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #12 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #13 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #14 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #15 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #16 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #17 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #18 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #19 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

previously allocated by thread T0 here:
    #0 0x7ff90dec2676  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052676)
    #1 0x7ff7ebe69fe1 in ebpf_allocate D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:391
    #2 0x7ff7ebe524e4 in ebpf_provider_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:393
    #3 0x7ff7eb778486 in CATCH2_INTERNAL_TEST_12 D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\unit\platform_unit_test.cpp:496
    #4 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #5 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #6 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #7 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #8 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #9 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #10 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #11 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #12 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #13 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #14 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #15 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #16 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #17 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #18 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #19 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

SUMMARY: AddressSanitizer: heap-use-after-free (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
Shadow bytes around the buggy address:
  0x0374a5c85390: fa fa fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0374a5c853a0: fd fd fd fd fa fa fa fa fa fa fa fa fd fd fd fd
  0x0374a5c853b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa
  0x0374a5c853c0: fa fa fa fa fa fa fd fd fd fd fd fd fd fd fd fd
  0x0374a5c853d0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
=>0x0374a5c853e0:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0374a5c853f0: fd fd fa fa fa fa fa fa fa fa 00 00 00 00 00 00
  0x0374a5c85400: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
  0x0374a5c85410: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
  0x0374a5c85420: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fd fd
  0x0374a5c85430: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==46308==ABORTING
3. bad_map_name-interpret: 
 =================================================================
==57520==ERROR: AddressSanitizer: heap-use-after-free on address 0x12b782b52830 at pc 0x7ff90deb1014 bp 0x00da69147bc0 sp 0x00da69147330
READ of size 16 at 0x12b782b52830 thread T0
    #0 0x7ff90deb1042  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
    #1 0x7ff90deb3f44  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180043f44)
    #2 0x7ff7eb79d592 in IsEqualGUID(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:161
    #3 0x7ff7eb7635dc in operator==(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:194
    #4 0x7ff7ebee468c in operator!=(struct _GUID const &, struct _GUID const &) C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\guiddef.h:199
    #5 0x7ff7ebef4133 in _nmr::bind(struct _nmr::client_registration &, struct _nmr::provider_registration &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:161
    #6 0x7ff7ebedda5c in _nmr::perform_bind<class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>>, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>>>(class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>> &, void *const, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:335
    #7 0x7ff7ebef755e in _nmr::register_client(struct _NPI_CLIENT_CHARACTERISTICS const &, void const *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:47
    #8 0x7ff7ebeafcf6 in NmrRegisterClient D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:77
    #9 0x7ff7ebe50a77 in ebpf_extension_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:269
    #10 0x7ff7ebdb4f39 in ebpf_program_load_providers D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:343
    #11 0x7ff7ebdb31f9 in ebpf_program_initialize D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_program.c:536
    #12 0x7ff7ebd75b4c in _ebpf_core_protocol_get_program_info D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:1379
    #13 0x7ff7ebd7c786 in ebpf_core_invoke_protocol_handler D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:2437
    #14 0x7ff7eb93d0f2 in GlueDeviceIoControl(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp:448
    #15 0x7ff7eb92bd03 in std::invoke<bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>(bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\type_traits:1572
    #16 0x7ff7eb91d401 in std::_Invoker_ret<int>::_Call<bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>(bool (__cdecl *&)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:672
    #17 0x7ff7eb94190b in std::_Func_impl_no_alloc<bool (__cdecl *)(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *), int, void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>::_Do_call(void *&&, unsigned long &&, void *&&, unsigned long &&, void *&&, unsigned long &&, unsigned long *&&, struct _OVERLAPPED *&&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:833
    #18 0x7ff7eb7aae06 in std::_Func_class<int, void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *>::operator()(void *, unsigned long, void *, unsigned long, void *, unsigned long, unsigned long *, struct _OVERLAPPED *) const C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:874
    #19 0x7ff7eb7ab9f1 in Platform::DeviceIoControl(__int64, unsigned int, void *, unsigned int, void *, unsigned int, unsigned int *, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\thunk\mock\mock.cpp:32
    #20 0x7ff7ebd17799 in invoke_ioctl<struct _ebpf_operation_get_program_info_request, class std::vector<unsigned char, class std::allocator<unsigned char>>>(struct _ebpf_operation_get_program_info_request &, class std::vector<unsigned char, class std::allocator<unsigned char>> &, struct _OVERLAPPED *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\device_helper.hpp:99
    #21 0x7ff7ebd23c79 in _get_program_info_data D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:187
    #22 0x7ff7ebd29f93 in get_program_type_windows(struct _GUID const &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:229
    #23 0x7ff7ebd297f8 in get_program_type_windows(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api_common\windows_platform_common.cpp:395
    #24 0x7ff7ebf6cc30 in read_elf(class std::basic_istream<char, struct std::char_traits<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, struct ebpf_verifier_options_t const *, struct ebpf_platform_t const *) D:\a\ebpf-for-windows\ebpf-for-windows\external\ebpf-verifier\src\asm_files.cpp:165
    #25 0x7ff7ebf6f13d in read_elf(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, struct ebpf_verifier_options_t const *, struct ebpf_platform_t const *) D:\a\ebpf-for-windows\ebpf-for-windows\external\ebpf-verifier\src\asm_files.cpp:115
    #26 0x7ff7ebcd513a in ebpf_api_elf_enumerate_sections(char const *, char const *, bool, struct _ebpf_section_info **, char const **) D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\Verifier.cpp:397
    #27 0x7ff7ebc8f58a in ebpf_enumerate_sections D:\a\ebpf-for-windows\ebpf-for-windows\libs\api\ebpf_api.cpp:2294
    #28 0x7ff7eb7f5f06 in CATCH2_INTERNAL_TEST_49 D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:996
    #29 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #30 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #31 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #32 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #33 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #34 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #35 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #36 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #37 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #38 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #39 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #40 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #41 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #42 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #43 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #44 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

0x12b782b52830 is located 0 bytes inside of 144-byte region [0x12b782b52830,0x12b782b528c0)
freed by thread T0 here:
    #0 0x7ff90dec2814  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052814)
    #1 0x7ff7ebe6c386 in ebpf_free D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:450
    #2 0x7ff7ebe538a1 in ebpf_provider_unload D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:461
    #3 0x7ff7ebd7e7ff in ebpf_core_terminate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:237
    #4 0x7ff7eb937e65 in _test_helper_end_to_end::~_test_helper_end_to_end(void) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp:689
    #5 0x7ff7ec380804 in `divide_by_zero_test_um'::`1'::dtor$0 (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\unit_tests.exe+0x140d60804)
    #6 0x7ff9cf55102f  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x18000102f)
    #7 0x7ff9cf5542a6  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x1800042a6)
    #8 0x7ff9cf55668a  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x18000668a)
    #9 0x7ff9cf552cd1  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180002cd1)
    #10 0x7ff9cf552f56  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180002f56)
    #11 0x7ff9cf556dda  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180006dda)
    #12 0x7ff7ebf458ff in __GSHandlerCheck_EH4 D:\a\_work\1\s\src\vctools\crt\vcstartup\src\gs\amd64\gshandlereh4.cpp:73
    #13 0x7ff9d6d93d7e  (C:\Windows\SYSTEM32\ntdll.dll+0x1800a3d7e)
    #14 0x7ff9d6d0fd43  (C:\Windows\SYSTEM32\ntdll.dll+0x18001fd43)
    #15 0x7ff9cf556a5e  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180006a5e)
    #16 0x7ff9cf551c1d  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180001c1d)
    #17 0x7ff9cf55218a  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x18000218a)
    #18 0x7ff9cf552ec4  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180002ec4)
    #19 0x7ff9cf552f56  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180002f56)
    #20 0x7ff9cf556dda  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140_1D.dll+0x180006dda)
    #21 0x7ff7ebf458ff in __GSHandlerCheck_EH4 D:\a\_work\1\s\src\vctools\crt\vcstartup\src\gs\amd64\gshandlereh4.cpp:73
    #22 0x7ff9d6d93cfe  (C:\Windows\SYSTEM32\ntdll.dll+0x1800a3cfe)
    #23 0x7ff9d6d0e455  (C:\Windows\SYSTEM32\ntdll.dll+0x18001e455)
    #24 0x7ff9d6d44454  (C:\Windows\SYSTEM32\ntdll.dll+0x180054454)
    #25 0x7ff9d474fe7b  (C:\Windows\System32\KERNELBASE.dll+0x18008fe7b)
    #26 0x7ff9b831b75f  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\VCRUNTIME140D.dll+0x18000b75f)
    #27 0x7ff7eb6c7747 in _single_instance_hook::_single_instance_hook(struct _GUID, struct _GUID) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\helpers.h:144
    #28 0x7ff7eb85bad5 in divide_by_zero_test_um(enum _ebpf_execution_type) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:512

previously allocated by thread T0 here:
    #0 0x7ff90dec2676  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052676)
    #1 0x7ff7ebe69fe1 in ebpf_allocate D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:391
    #2 0x7ff7ebe524e4 in ebpf_provider_load D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\ebpf_extension.c:393
    #3 0x7ff7ebd7be54 in ebpf_core_initiate D:\a\ebpf-for-windows\ebpf-for-windows\libs\execution_context\ebpf_core.c:204
    #4 0x7ff7eb932d07 in _test_helper_end_to_end::_test_helper_end_to_end(void) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\test_helper.cpp:635
    #5 0x7ff7eb85b9d0 in divide_by_zero_test_um(enum _ebpf_execution_type) D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:504
    #6 0x7ff7eb7fadcd in CATCH2_INTERNAL_TEST_7 D:\a\ebpf-for-windows\ebpf-for-windows\tests\end_to_end\end_to_end.cpp:980
    #7 0x7ff7eba9a710 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #8 0x7ff7ebac65bf in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #9 0x7ff7ebac66e1 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:544
    #10 0x7ff7ebac94e7 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:507
    #11 0x7ff7ebaca213 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:238
    #12 0x7ff7ec306381 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:111
    #13 0x7ff7ec3091c3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:333
    #14 0x7ff7ec308588 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:264
    #15 0x7ff7ebf4aa96 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #16 0x7ff7ebf4abc0 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #17 0x7ff7ebf45ed8 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #18 0x7ff7ebf45e2d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #19 0x7ff7ebf45ced in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #20 0x7ff7ebf45f4d in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #21 0x7ff9d5fa26bc  (C:\Windows\System32\KERNEL32.DLL+0x1800126bc)
    #22 0x7ff9d6d4a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

SUMMARY: AddressSanitizer: heap-use-after-free (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180041042)
Shadow bytes around the buggy address:
  0x04f472fea4b0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x04f472fea4c0: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
  0x04f472fea4d0: fa fa fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x04f472fea4e0: fd fd fd fd fa fa fa fa fa fa fa fa fd fd fd fd
  0x04f472fea4f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
=>0x04f472fea500: fa fa fa fa fa fa[fd]fd fd fd fd fd fd fd fd fd
  0x04f472fea510: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
  0x04f472fea520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x04f472fea530: 00 fa fa fa fa fa fa fa fa fa fd fd fd fd fd fd
  0x04f472fea540: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
  0x04f472fea550: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==57520==ABORTING
  1. Crash, table is NULL
netebpfext_unit.exe
-------------------------------------------------------------------------------
load_native_program_invalid5
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(2603)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(2584): FAILED:
  REQUIRE( result == expected_result )
with expansion:
  -12 == -22
  
   table = (metadata_table_t*)client_registration_instance->NpiSpecificCharacteristics;
    if (!table->programs || !table->maps) {
        result = EBPF_INVALID_ARGUMENT;
        goto Done;
    }
  1. Crash, passing NULL buffer to BCryptHashData
 -------------------------------------------------------------------------------
cgroup_sockaddr_load_test_"authorize_connect6"_EBPF_ATTACH_TYPE_CGROUP_INET6_C-
ONNECT_native
-------------------------------------------------------------------------------
C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1147)
...............................................................................

C:\ebpf\ebpf-for-windows\tests\end_to_end\end_to_end.cpp(1147): FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  ebpf_provider_load failed

ebpf_crypto_hash.c
_Must_inspect_result_ ebpf_result_t
ebpf_cryptographic_hash_append(
    _Inout_ ebpf_cryptographic_hash_t* hash, _In_reads_bytes_(length) const uint8_t* buffer, size_t length)
{
    NTSTATUS nt_status;

    nt_status = BCryptHashData(hash->hash_handle, (uint8_t*)buffer, (unsigned long)length, 0);
    if (!NT_SUCCESS(nt_status)) {
        return EBPF_INVALID_ARGUMENT;
    }
    return EBPF_SUCCESS;
}

@shpalani
Copy link
Collaborator

shpalani commented Apr 3, 2023

Status:
Crashes: FIXED

  1. heap-use-after-free
  • EBPF_OPERATION_MAP_UPDATE_ELEMENT

  • droppacket-jit

  • bad_map_name-interpret

    • load_native_program_invalid5. Reason for crash: Accessing 'table' which was NULL
    • cgroup_sockaddr_load_test_"authorize_connect6"_EBPF_ATTACH_TYPE_CGROUP_INET6_C-

ONNECT_native: Reason of crash: Passing buffer NULL to BCryptHashData

    • Dereferencing null pointer : general_helper_program_data

@shpalani shpalani linked a pull request Apr 3, 2023 that will close this issue
@shpalani shpalani reopened this Apr 5, 2023
@shpalani shpalani linked a pull request Apr 7, 2023 that will close this issue
@dthaler
Copy link
Collaborator

dthaler commented Apr 11, 2023

@shpalani Which parts of this issue are still left?

@shpalani shpalani linked a pull request Apr 12, 2023 that will close this issue
@shpalani
Copy link
Collaborator

@shpalani Which parts of this issue are still left?

NMR APIs:
All the NMR APIs in nmr_um.cpp listed in the description. The draft PR exists with fixes as it is seen, but still, there are more failures encountered and triaged, which makes it uncommittable.
OS APIs:
kernel_um.cpp
ndis_um.cpp

@shpalani
Copy link
Collaborator

shpalani commented Apr 20, 2023

Memory leaks:

  1. netebpfext_unit.exe
Leak of 24 bytes at 1985641881568
    ebpf_allocate + 190 (C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:413)
    ExAllocatePoolUninitialized + 29 (C:\ebpf\ebpf-for-windows\libs\platform\user\kernel_um.cpp:345)
    _net_ebpf_extension_program_info_provider_attach_client + 280 (C:\ebpf\ebpf-for-windows\netebpfext\net_ebpf_ext_prog_info_provider.c:70)
    _nmr::client_attach_provider + 553 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:139)
    NmrClientAttachProvider + 93 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_um.cpp:130)
    _netebpf_ext_helper::_program_info_client_attach_provider + 334 (C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:146)
    `_nmr::bind'::`2'::<lambda_1>::operator() + 184 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:183)
    std::invoke<`_nmr::bind'::`2'::<lambda_1> &> + 20 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\type_traits:1565)
    std::_Invoker_ret<void>::_Call<`_nmr::bind'::`2'::<lambda_1> &> + 20 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:674)
    std::_Func_impl_no_alloc<`_nmr::bind'::`2'::<lambda_1>,void>::_Do_call + 27 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:834)
    std::_Func_class<void>::operator() + 80 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:875)
    _nmr::perform_bind<std::map<void *,_nmr::client_registration,std::less<void *>,std::allocator<std::pair<void * const,_nmr::client_registration> > >,std::map<void *,_nmr::provider_registration,std::less<void *>,std::allocator<std::pair<void * const,_nmr::provider_registration> > > > + 758 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:353)
    _nmr::register_client + 96 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:48)
    NmrRegisterClient + 60 (C:\ebpf\ebpf-for-windows\libs\platform\user\nmr_um.cpp:79)
    _netebpf_ext_helper::_nmr_client_registration::_nmr_client_registration + 401 (C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h:131)
    std::make_unique<_netebpf_ext_helper::_nmr_client_registration,_NPI_CLIENT_CHARACTERISTICS *,_netebpf_ext_helper *,0> + 77 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\memory:3393)
    _netebpf_ext_helper::_netebpf_ext_helper + 3176 (C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:69)
    CATCH2_INTERNAL_TEST_2 + 78 (C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp:58)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:545)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:510)
    Catch::RunContext::runTest + 738 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:240)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1008 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
    mainCRTStartup + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
    BaseThreadInitThunk + 29
Assertion failed: _allocations.empty(), file C:\ebpf\ebpf-for-windows\libs\platform\user\ebpf_leak_detector.cpp, line 69

@shpalani
Copy link
Collaborator

shpalani commented Apr 20, 2023

Adding fault injection in ndis_um.cpp,

  1. Crash in xdp_context test case at _ebpf_xdp_context_delete() in net_ebpf_ext_xdp.c. The clone ndis API returned null, and hence the data was null in the memcpy's to arg.
 (8cd4.1fa8): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
netebpfext_unit!_ebpf_xdp_context_delete+0x105:
00007ff6`2e4cfb95 f3a4            rep movs byte ptr [rdi],byte ptr [rsi]
0:000> k
 # Child-SP          RetAddr               Call Site
00 000000c0`5fcfd7f0 00007ff6`2e398e47     netebpfext_unit!_ebpf_xdp_context_delete+0x105 [C:\ebpf\ebpf-for-windows\netebpfext\net_ebpf_ext_xdp.c @ 879] 
01 000000c0`5fcfd890 00007ff6`2e3bc4f2     netebpfext_unit!CATCH2_INTERNAL_TEST_6+0xb87 [C:\ebpf\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp @ 198] 
02 000000c0`5fcfe5f0 00007ff6`2e3ceb11     netebpfext_unit!Catch::`anonymous namespace'::TestInvokerAsFunction::invoke+0x12 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp @ 58] 
03 000000c0`5fcfe620 00007ff6`2e3ceb67     netebpfext_unit!Catch::TestCaseHandle::invoke+0x21 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp @ 116] 
04 000000c0`5fcfe650 00007ff6`2e3cf980     netebpfext_unit!Catch::RunContext::invokeActiveTestCase+0x47 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp @ 545] 
05 000000c0`5fcfe6a0 00007ff6`2e3cfef2     netebpfext_unit!Catch::RunContext::runCurrentTest+0x250 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp @ 510] 
06 000000c0`5fcfea20 00007ff6`2e501f93     netebpfext_unit!Catch::RunContext::runTest+0x2e2 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp @ 240] 
07 000000c0`5fcfef00 00007ff6`2e503290     netebpfext_unit!Catch::`anonymous namespace'::TestGroup::execute+0xf3 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp @ 110] 
08 000000c0`5fcff080 00007ff6`2e502e10     netebpfext_unit!Catch::Session::runInternal+0x3f0 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp @ 335] 
09 000000c0`5fcff500 00007ff6`2e4eae52     netebpfext_unit!Catch::Session::run+0x50 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp @ 263] 
0a 000000c0`5fcff540 00007ff6`2e4eaee1     netebpfext_unit!Catch::Session::run<char>+0x52 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp @ 41] 
0b 000000c0`5fcff580 00007ff6`2e4e7b99     netebpfext_unit!main+0x61 [C:\ebpf\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp @ 36] 
0c 000000c0`5fcff7a0 00007ff6`2e4e7a7e     netebpfext_unit!invoke_main+0x39 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 79] 
0d 000000c0`5fcff7f0 00007ff6`2e4e793e     netebpfext_unit!__scrt_common_main_seh+0x12e [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
0e 000000c0`5fcff860 00007ff6`2e4e7c2e     netebpfext_unit!__scrt_common_main+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331] 
0f 000000c0`5fcff890 00007ffa`f091269d     netebpfext_unit!mainCRTStartup+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17] 
10 000000c0`5fcff8c0 00007ffa`f1b0a9f8     KERNEL32!BaseThreadInitThunk+0x1d [clientcore\base\win32\client\thread.c @ 75] 
11 000000c0`5fcff8f0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 
0:000> dx Debugger.Sessions[0].Processes[36052].Threads[8104].Stack.Frames[1].SwitchTo();dv /t /v
Debugger.Sessions[0].Processes[36052].Threads[8104].Stack.Frames[1].SwitchTo()
000000c0`5fcfdd30 class Catch::AssertionHandler catchAssertionHandler = class Catch::AssertionHandler
000000c0`5fcfd9d8 struct _ebpf_extension_data xdp_extension_data = struct _ebpf_extension_data
000000c0`5fcfdaa8 struct xdp_md input_context = struct xdp_md
000000c0`5fcfda88 unsigned int64 output_data_size = 0x64
000000c0`5fcfdb48 struct xdp_md * xdp_context = 0x000002bf`6845bfc0
000000c0`5fcfdca8 <function> * adjust_head = 0x00007ff6`2e4cf160
000000c0`5fcfdae8 unsigned int64 output_context_size = 0
000000c0`5fcfdb08 struct xdp_md output_context = struct xdp_md
000000c0`5fcfda08 class std::vector<unsigned char,std::allocator<unsigned char> > input_data = { size=100 }
000000c0`5fcfda48 class std::vector<unsigned char,std::allocator<unsigned char> > output_data = { size=100 }
000000c0`5fcfd8d0 class _netebpf_ext_helper helper = class _netebpf_ext_helper
000000c0`5fcfd9f8 struct _ebpf_program_data * xdp_program_data = 0x00007ff6`2e617618
0:000> dx -r1 ((netebpfext_unit!_net_ebpf_xdp_md *)0x2bf6845bfc0)
((netebpfext_unit!_net_ebpf_xdp_md *)0x2bf6845bfc0)                 : 0x2bf6845bfc0 [Type: _net_ebpf_xdp_md *]
    [+0x000] base             [Type: xdp_md]
    [+0x020] original_nbl     : 0x2bf6845cbb0 [Type: _NET_BUFFER_LIST *]
    [+0x028] cloned_nbl       : 0x0 [Type: _NET_BUFFER_LIST *]
0:000> dx -r1 (*((netebpfext_unit!xdp_md *)0x2bf6845bfc0))
(*((netebpfext_unit!xdp_md *)0x2bf6845bfc0))                 [Type: xdp_md]
    [+0x000] data             : 0x0 [Type: void *]
    [+0x008] data_end         : 0x2bf6845ca24 [Type: void *]
    [+0x010] data_meta        : 0x303a [Type: unsigned __int64]
    [+0x018] ingress_ifindex  : 0x10931 [Type: unsigned int]

@shpalani
Copy link
Collaborator

Pending:
NMR API:
NmrClientAttachProvider

OS APIs:
9. fwp_um.cpp
10. kernel_um.cpp

@shpalani shpalani reopened this Apr 21, 2023
@shpalani shpalani reopened this Apr 21, 2023
@shpalani shpalani linked a pull request Apr 22, 2023 that will close this issue
@shpalani shpalani reopened this Apr 26, 2023
@shpalani
Copy link
Collaborator

shpalani commented Apr 26, 2023

Status/Progress: fwp_um.cpp

Fault Injection was added to the following WFP APIs:

  1. FwpmFilterDeleteById0
  2. FwpmTransactionBegin0
  3. FwpmFilterAdd0
  4. FwpmTransactionAbort0
  5. FwpsCalloutRegister3
  6. FwpmCalloutAdd0
  7. FwpsCalloutUnregisterById0
  8. FwpmEngineOpen0
  9. FwpmProviderAdd0
  10. FwpmSubLayerAdd0
  11. FwpmEngineClose0
  12. FwpsInjectionHandleCreate0
  13. FwpsInjectionHandleDestroy0

Pending:

  1. FwpmTransactionCommit0
  2. FwpsFlowRemoveContext0
  3. FwpsFlowAssociateContext0
  4. FwpsAllocateNetBufferAndNetBufferList0
  5. FwpsInjectMacReceiveAsync0
  6. FwpsAllocateCloneNetBufferList0
  7. FwpsInjectMacSendAsync0
  8. FwpsAcquireWritableLayerDataPointer0
  9. FwpsAcquireClassifyHandle0
  10. FwpsRedirectHandleCreate0
  11. FwpsQueryConnectionRedirectState0

Adding FI to FwpmTransactionCommit0 gave leak, and crash.

Leak of 40 bytes at 2318349191312
    ebpf_allocate + 190 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:411)
    ExAllocatePoolUninitialized + 29 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\kernel_um.cpp:345)
    net_ebpf_extension_wfp_filter_context_create + 176 (C:\ebpf-2023\ebpf-for-windows\netebpfext\net_ebpf_ext.c:248)
    net_ebpf_extension_xdp_on_client_attach + 526 (C:\ebpf-2023\ebpf-for-windows\netebpfext\net_ebpf_ext_xdp.c:173)
    _net_ebpf_extension_hook_provider_attach_client + 613 (C:\ebpf-2023\ebpf-for-windows\netebpfext\net_ebpf_ext_hook_provider.c:362)
    _nmr::client_attach_provider + 553 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:139)
    NmrClientAttachProvider + 112 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_um.cpp:128)
    _netebpf_ext_helper::_hook_client_attach_provider + 258 (C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:205)
    `_nmr::bind'::`2'::<lambda_1>::operator() + 184 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:183)
    std::invoke<`_nmr::bind'::`2'::<lambda_1> &> + 20 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\type_traits:1565)
    std::_Invoker_ret<void>::_Call<`_nmr::bind'::`2'::<lambda_1> &> + 20 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:674)
    std::_Func_impl_no_alloc<`_nmr::bind'::`2'::<lambda_1>,void>::_Do_call + 27 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:834)
    std::_Func_class<void>::operator() + 80 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\functional:875)
    _nmr::perform_bind<std::map<void *,_nmr::client_registration,std::less<void *>,std::allocator<std::pair<void * const,_nmr::client_registration> > >,std::map<void *,_nmr::provider_registration,std::less<void *>,std::allocator<std::pair<void * const,_nmr::provider_registration> > > > + 758 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:353)
    _nmr::register_client + 96 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:48)
    NmrRegisterClient + 79 (C:\ebpf-2023\ebpf-for-windows\libs\platform\user\nmr_um.cpp:73)
    _netebpf_ext_helper::_nmr_client_registration::_nmr_client_registration + 401 (C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h:131)
    std::make_unique<_netebpf_ext_helper::_nmr_client_registration,_NPI_CLIENT_CHARACTERISTICS *,_netebpfext_helper_base_client_context * &,0> + 77 (C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\memory:3393)
    _netebpf_ext_helper::_netebpf_ext_helper + 3433 (C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:79)
    CATCH2_INTERNAL_TEST_4 + 161 (C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp:119)
    Catch::`anonymous namespace'::TestInvokerAsFunction::invoke + 18 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58)
    Catch::TestCaseHandle::invoke + 33 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:116)
    Catch::RunContext::invokeActiveTestCase + 71 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:545)
    Catch::RunContext::runCurrentTest + 592 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:510)
    Catch::RunContext::runTest + 738 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:240)
    Catch::`anonymous namespace'::TestGroup::execute + 243 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110)
    Catch::Session::runInternal + 1008 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:335)
    Catch::Session::run + 80 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263)
    Catch::Session::run<char> + 82 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41)
    main + 97 (C:\ebpf-2023\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36)
    invoke_main + 57 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
    __scrt_common_main_seh + 302 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
    __scrt_common_main + 14 (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
Assertion failed: _allocations.empty(), file C:\ebpf-2023\ebpf-for-windows\libs\platform\user\ebpf_leak_detector.cpp, line 69
0:055> k
 # Child-SP          RetAddr               Call Site
00 0000006c`183fd660 00007ffa`89d73153     ucrtbased!_threadid+0x65
01 0000006c`183fd6b0 00007ffa`89d8ae2d     ucrtbased!_threadid+0x203
02 0000006c`183fd710 00007ffa`89d89db0     ucrtbased!abort+0x1d
03 0000006c`183fd750 00007ffa`de6e223a     ucrtbased!terminate+0x40
04 0000006c`183fd790 00007ffa`de6e2ec5     VCRUNTIME140_1D!_NLG_Return2+0x10ea
05 0000006c`183fd970 00007ffa`de6e2f57     VCRUNTIME140_1D!_NLG_Return2+0x1d75
06 0000006c`183fda40 00007ffa`de6e6ddb     VCRUNTIME140_1D!_NLG_Return2+0x1e07
07 0000006c`183fdaa0 00007ff6`457b8be0     VCRUNTIME140_1D!_CxxFrameHandler4+0xfb
08 0000006c`183fdb30 00007ffa`f1b53cff     netebpfext_unit!__GSHandlerCheck_EH4+0x90 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\gs\amd64\gshandlereh4.cpp @ 73] 
09 0000006c`183fdb80 00007ffa`f1ace456     ntdll!_chkstk+0x12f
0a 0000006c`183fdbb0 00007ffa`f1b52cee     ntdll!RtlFindCharInUnicodeString+0xa96
0b 0000006c`183fe300 00007ffa`ef08fdec     ntdll!KiUserExceptionDispatcher+0x2e
0c 0000006c`183ff0c0 00007ffa`cab1b760     KERNELBASE!RaiseException+0x6c
0d 0000006c`183ff1a0 00007ff6`457c4ede     VCRUNTIME140D!CxxThrowException+0x120
0e 0000006c`183ff230 00007ff6`457c61c3     netebpfext_unit!_rundown_ref_table::acquire_rundown_ref+0x14e [C:\ebpf-2023\ebpf-for-windows\libs\platform\user\kernel_um.cpp @ 107] 
0f 0000006c`183ff360 00007ff6`457a4f35     netebpfext_unit!ExAcquireRundownProtection+0x23 [C:\ebpf-2023\ebpf-for-windows\libs\platform\user\kernel_um.cpp @ 254] 
10 0000006c`183ff3a0 00007ff6`4579bec5     netebpfext_unit!net_ebpf_extension_hook_client_enter_rundown+0x25 [C:\ebpf-2023\ebpf-for-windows\netebpfext\net_ebpf_ext_hook_provider.c @ 179] 
11 0000006c`183ff3e0 00007ff6`4578d07a     netebpfext_unit!net_ebpf_extension_sock_addr_authorize_recv_accept_classify+0xe5 [C:\ebpf-2023\ebpf-for-windows\netebpfext\net_ebpf_ext_sock_addr.c @ 1092] 
12 0000006c`183ff520 00007ff6`4578d857     netebpfext_unit!_fwp_engine::test_callout+0x29a [C:\ebpf-2023\ebpf-for-windows\netebpfext\user\fwp_um.cpp @ 149] 
13 0000006c`183ff7f0 00007ff6`45679998     netebpfext_unit!_fwp_engine::test_cgroup_inet4_recv_accept+0x177 [C:\ebpf-2023\ebpf-for-windows\netebpfext\user\fwp_um.cpp @ 174] 
14 0000006c`183ffad0 00007ff6`45677340     netebpfext_unit!_netebpf_ext_helper::test_cgroup_inet4_recv_accept+0x28 [C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h @ 61] 
15 0000006c`183ffb10 00007ff6`45652128     netebpfext_unit!sock_addr_thread_function+0x130 [C:\ebpf-2023\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp @ 531] 
16 0000006c`183ffcb0 00007ff6`4564a5c6     netebpfext_unit!std::invoke<void (__cdecl*)(std::stop_token,_netebpf_ext_helper *,_fwp_classify_parameters *,enum _sock_addr_test_type,unsigned short,unsigned short),std::stop_token,_netebpf_ext_helper *,_fwp_classify_parameters *,enum _sock_addr_test_type,unsigned short,unsigned short>+0xe8 [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\type_traits @ 1589] 
17 0000006c`183ffd50 00007ffa`89d93010     netebpfext_unit!std::thread::_Invoke<std::tuple<void (__cdecl*)(std::stop_token,_netebpf_ext_helper *,_fwp_classify_parameters *,enum _sock_addr_test_type,unsigned short,unsigned short),std::stop_token,_netebpf_ext_helper *,_fwp_classify_parameters *,enum _sock_addr_test_type,unsigned short,unsigned short>,0,1,2,3,4,5,6>+0x126 [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\include\thread @ 56] 
18 0000006c`183ffe10 00007ffa`f091269d     ucrtbased!register_onexit_function+0x130
19 0000006c`183ffe70 00007ffa`f1b0a9f8     KERNEL32!BaseThreadInitThunk+0x1d
1a 0000006c`183ffea0 00000000`00000000     ntdll!RtlUserThreadStart+0x28

@shpalani
Copy link
Collaborator

shpalani commented Apr 29, 2023

This will be taken in #2405

FwpmTransactionCommit0 crash stack:

-------------------------------------------------------------------------------
bind_context
-------------------------------------------------------------------------------
D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp(252)
...............................................................................

D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp(278): FAILED:
  REQUIRE( bind_program_data->context_create( nullptr, 0, (const uint8_t*)&input_context, sizeof(input_context), (void**)&bind_context) == EBPF_SUCCESS )
with expansion:
  12 == 0

0.000 s: bind_context
=================================================================
==5164==ERROR: AddressSanitizer: heap-use-after-free on address 0x12c85fb22698 at pc 0x7ff7ca36f24a bp 0x00fc7ef8a530 sp 0x00fc7ef8a538
READ of size 8 at 0x12c85fb22698 thread T0
    #0 0x7ff7ca36f249 in net_ebpf_extension_sock_addr_authorize_recv_accept_classify(struct FWPS_INCOMING_VALUES0_ const *, struct FWPS_INCOMING_METADATA_VALUES0_ const *, void *, void const *, struct FWPS_FILTER3_ const *, unsigned __int64, struct FWPS_CLASSIFY_OUT0_*) D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_sock_addr.c:1087
    #1 0x7ff7ca34eea7 in _fwp_engine::test_callout(unsigned short, struct _GUID const &, struct _GUID const &, struct FWPS_INCOMING_VALUE0_*) D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\user\fwp_um.cpp:140
    #2 0x7ff7ca3504d5 in _fwp_engine::test_cgroup_inet4_recv_accept(struct _fwp_classify_parameters *) D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\user\fwp_um.cpp:172
    #3 0x7ff7ca0baf66 in _netebpf_ext_helper::test_cgroup_inet4_recv_accept(struct _fwp_classify_parameters *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h:60
    #4 0x7ff7ca07f2a8 in CATCH2_INTERNAL_TEST_12 D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp:427
    #5 0x7ff7ca0e6e80 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #6 0x7ff7ca112b2f in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #7 0x7ff7ca112c51 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:545
    #8 0x7ff7ca115a57 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:508
    #9 0x7ff7ca116783 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239
    #10 0x7ff7ca3cff41 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110
    #11 0x7ff7ca3d2db3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:332
    #12 0x7ff7ca3d2178 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263
    #13 0x7ff7ca3985d6 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41
    #14 0x7ff7ca398700 in main D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_main.cpp:36
    #15 0x7ff7ca394038 in invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
    #16 0x7ff7ca393f8d in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    #17 0x7ff7ca393e4d in __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:330
    #18 0x7ff7ca3940ad in mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:16
    #19 0x7ffaf091269c  (C:\Windows\System32\KERNEL32.DLL+0x18001269c)
    #20 0x7ffaf1b0a9f7  (C:\Windows\SYSTEM32\ntdll.dll+0x18005a9f7)

0x12c85fb22698 is located 8 bytes inside of 40-byte region [0x12c85fb22690,0x12c85fb226b8)
freed by thread T0 here:
    #0 0x7ffa7df328b4  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x1800528b4)
    #1 0x7ff7ca2c4496 in ebpf_free D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:461
    #2 0x7ff7ca3aee32 in ExFreePool D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\kernel_um.cpp:350
    #3 0x7ff7ca36a082 in _net_ebpf_extension_sock_addr_on_client_attach D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_sock_addr.c:389
    #4 0x7ff7ca38060e in _net_ebpf_extension_hook_provider_attach_client D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_hook_provider.c:362
    #5 0x7ff7ca31fd31 in _nmr::client_attach_provider(void *, void const *, void const *, void const **, void const **) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:139
    #6 0x7ff7ca2e67be in NmrClientAttachProvider D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:128
    #7 0x7ff7ca0cb292 in _netebpf_ext_helper::_hook_client_attach_provider(void *, void *, struct _NPI_REGISTRATION_INSTANCE const *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:195
    #8 0x7ff7ca30ffff in `_nmr::bind'::`2'::<lambda_1>::operator() D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:183
    #9 0x7ff7ca306bd2 in std::invoke<`_nmr::bind'::`2'::<lambda_1> &> C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\type_traits:1562
    #10 0x7ff7ca2fc7d2 in std::_Invoker_ret<void>::_Call<`_nmr::bind'::`2'::<lambda_1> &> C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:670
    #11 0x7ff7ca311da9 in std::_Func_impl_no_alloc<`_nmr::bind'::`2'::<lambda_1>,void>::_Do_call C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:833
    #12 0x7ff7ca310594 in std::_Func_class<void>::operator()(void) const C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:874
    #13 0x7ff7ca3072f1 in _nmr::perform_bind<class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>>, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>>>(class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>> &, void *const, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:352
    #14 0x7ff7ca3214de in _nmr::register_client(struct _NPI_CLIENT_CHARACTERISTICS const &, void const *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:47
    #15 0x7ff7ca2e697c in NmrRegisterClient D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:73
    #16 0x7ff7ca0c6304 in _netebpf_ext_helper::_nmr_client_registration::_nmr_client_registration(struct _NPI_CLIENT_CHARACTERISTICS const *, void *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h:131
    #17 0x7ff7ca0c2aa6 in std::make_unique<struct _netebpf_ext_helper::_nmr_client_registration, struct _NPI_CLIENT_CHARACTERISTICS *, struct _netebpfext_helper_base_client_context *&, 0>(struct _NPI_CLIENT_CHARACTERISTICS *&&, struct _netebpfext_helper_base_client_context *&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\memory:3433
    #18 0x7ff7ca0c5cd3 in _netebpf_ext_helper::_netebpf_ext_helper(void const *, enum ebpf_result (__cdecl *)(void), struct _netebpfext_helper_base_client_context *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:76
    #19 0x7ff7ca07f1c4 in CATCH2_INTERNAL_TEST_12 D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp:416
    #20 0x7ff7ca0e6e80 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #21 0x7ff7ca112b2f in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #22 0x7ff7ca112c51 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:545
    #23 0x7ff7ca115a57 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:508
    #24 0x7ff7ca116783 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239
    #25 0x7ff7ca3cff41 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110
    #26 0x7ff7ca3d2db3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:332
    #27 0x7ff7ca3d2178 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263
    #28 0x7ff7ca3985d6 in Catch::Session::run<char>(int, char const *const *const) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.hpp:41

previously allocated by thread T0 here:
    #0 0x7ffa7df32716  (C:\Users\shpalan\Downloads\Build-x64-Sanitize-Debug\build-Debug\Debug\clang_rt.asan_dbg_dynamic-x86_64.dll+0x180052716)
    #1 0x7ff7ca2c20e1 in ebpf_allocate D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\ebpf_platform_user.cpp:402
    #2 0x7ff7ca3aee0b in ExAllocatePoolUninitialized D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\kernel_um.cpp:344
    #3 0x7ff7ca35a384 in net_ebpf_extension_wfp_filter_context_create(unsigned __int64, struct _net_ebpf_extension_hook_client const *, struct _net_ebpf_extension_wfp_filter_context **) D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext.c:248
    #4 0x7ff7ca369a60 in _net_ebpf_extension_sock_addr_on_client_attach D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_sock_addr.c:350
    #5 0x7ff7ca38060e in _net_ebpf_extension_hook_provider_attach_client D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_hook_provider.c:362
    #6 0x7ff7ca31fd31 in _nmr::client_attach_provider(void *, void const *, void const *, void const **, void const **) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:139
    #7 0x7ff7ca2e67be in NmrClientAttachProvider D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:128
    #8 0x7ff7ca0cb292 in _netebpf_ext_helper::_hook_client_attach_provider(void *, void *, struct _NPI_REGISTRATION_INSTANCE const *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:195
    #9 0x7ff7ca30ffff in `_nmr::bind'::`2'::<lambda_1>::operator() D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:183
    #10 0x7ff7ca306bd2 in std::invoke<`_nmr::bind'::`2'::<lambda_1> &> C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\type_traits:1562
    #11 0x7ff7ca2fc7d2 in std::_Invoker_ret<void>::_Call<`_nmr::bind'::`2'::<lambda_1> &> C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:670
    #12 0x7ff7ca311da9 in std::_Func_impl_no_alloc<`_nmr::bind'::`2'::<lambda_1>,void>::_Do_call C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:833
    #13 0x7ff7ca310594 in std::_Func_class<void>::operator()(void) const C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\functional:874
    #14 0x7ff7ca3072f1 in _nmr::perform_bind<class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>>, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>>>(class std::map<void *, struct _nmr::client_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::client_registration>>> &, void *const, class std::map<void *, struct _nmr::provider_registration, struct std::less<void *>, class std::allocator<struct std::pair<void *const, struct _nmr::provider_registration>>> &) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:352
    #15 0x7ff7ca3214de in _nmr::register_client(struct _NPI_CLIENT_CHARACTERISTICS const &, void const *) D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_impl.cpp:47
    #16 0x7ff7ca2e697c in NmrRegisterClient D:\a\ebpf-for-windows\ebpf-for-windows\libs\platform\user\nmr_um.cpp:73
    #17 0x7ff7ca0c6304 in _netebpf_ext_helper::_nmr_client_registration::_nmr_client_registration(struct _NPI_CLIENT_CHARACTERISTICS const *, void *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.h:131
    #18 0x7ff7ca0c2aa6 in std::make_unique<struct _netebpf_ext_helper::_nmr_client_registration, struct _NPI_CLIENT_CHARACTERISTICS *, struct _netebpfext_helper_base_client_context *&, 0>(struct _NPI_CLIENT_CHARACTERISTICS *&&, struct _netebpfext_helper_base_client_context *&) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\include\memory:3433
    #19 0x7ff7ca0c5cd3 in _netebpf_ext_helper::_netebpf_ext_helper(void const *, enum ebpf_result (__cdecl *)(void), struct _netebpfext_helper_base_client_context *) D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpf_ext_helper.cpp:76
    #20 0x7ff7ca07f1c4 in CATCH2_INTERNAL_TEST_12 D:\a\ebpf-for-windows\ebpf-for-windows\tests\netebpfext_unit\netebpfext_unit.cpp:416
    #21 0x7ff7ca0e6e80 in Catch::`anonymous namespace'::TestInvokerAsFunction::invoke D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_test_registry.cpp:58
    #22 0x7ff7ca112b2f in Catch::TestCaseHandle::invoke(void) const D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_test_case_info.hpp:115
    #23 0x7ff7ca112c51 in Catch::RunContext::invokeActiveTestCase(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:545
    #24 0x7ff7ca115a57 in Catch::RunContext::runCurrentTest(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:508
    #25 0x7ff7ca116783 in Catch::RunContext::runTest(class Catch::TestCaseHandle const &) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\internal\catch_run_context.cpp:239
    #26 0x7ff7ca3cff41 in Catch::`anonymous namespace'::TestGroup::execute D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:110
    #27 0x7ff7ca3d2db3 in Catch::Session::runInternal(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:332
    #28 0x7ff7ca3d2178 in Catch::Session::run(void) D:\a\ebpf-for-windows\ebpf-for-windows\external\Catch2\src\catch2\catch_session.cpp:263

SUMMARY: AddressSanitizer: heap-use-after-free D:\a\ebpf-for-windows\ebpf-for-windows\netebpfext\net_ebpf_ext_sock_addr.c:1087 in net_ebpf_extension_sock_addr_authorize_recv_accept_classify(struct FWPS_INCOMING_VALUES0_ const *, struct FWPS_INCOMING_METADATA_VALUES0_ const *, void *, void const *, struct FWPS_FILTER3_ const *, unsigned __int64, struct FWPS_CLASSIFY_OUT0_*)
Shadow bytes around the buggy address:
  0x05196b9e4480: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x05196b9e4490: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fa
  0x05196b9e44a0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x05196b9e44b0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x05196b9e44c0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
=>0x05196b9e44d0: fa fa fd[fd]fd fd fd fa fa fa fd fd fd fd fd fd
  0x05196b9e44e0: fa fa fd fd fd fd fd fd fa fa 00 00 00 00 00 00
  0x05196b9e44f0: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x05196b9e4500: fa fa fd fd fd fd fd fd fa fa 00 00 00 00 00 fa
  0x05196b9e4510: fa fa 00 00 00 00 00 fa fa fa fd fd fd fd fd fd
  0x05196b9e4520: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==5164==ABORTING

@shpalani
Copy link
Collaborator

Moving the pending work items to new issues

  1. Simulate FWP OS API failures in fwp_um.cpp
    Simulate FWP OS API failures in fwp_um.cpp #2405
  2. Simulate Kernel OS API failures in kernel_um.cpp Simulate Kernel OS API failures in kernel_um.cpp  #2406

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment