* clean up code
* fixing the build
* Update libs/ebpfnetsh/elf.cpp
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* fixing the build
* fixing the build
* fixing the build
* fixing the build
* fixing the build
* fixing the build
* revert HRESULT
* change BOOL type
* change BOOL type
* change BOOL type
* change BOOL type
* change BOOL type
* change BOOL type
* revert LPSERVICE_MAIN_FUNCTION
* revert SERVICE_MAIN_FUNCTION*
* SAL annotation for svcmain.cpp
* revert some SAL annotation
* remove some extra spaces
* fix tests
* change to bool type
* Update map_dll.c
* fix according to dll_main prototype
* fix BOOL
* fix according to dll_main prototype
* BOOl type
* BOOl type
* modify doc for self host runner setup
* modify doc for self host runner setup
* update tests with bool
* Update tests/unit/wer_report_test_wrapper.cpp
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Update libs/platform/user/ebpf_platform_user.cpp
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Update libs/ebpfnetsh/programs.cpp
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* change _Null_terminated_ to _Field_z_
* address PR comment
---------
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Gianni Trevisiol <gtrevi@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
* Clean up order of includes
Fixes#1963
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update clang-format
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Clean up headers
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update sort
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* FIx various build errors
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix ordering if including a .c file
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix cmake build
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* More header cleanup
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update expected bpf2c output
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* More header fixes
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update expected bpf2c output for custom bpf.c
The generate script does not handle this file.
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix tests
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix more expected bpf2c output
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
---------
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
* Regenerate and checkin corpus files
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Add option to generate .spd files for sample driven PGO
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix test failure
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Add version check to native images
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix release build
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Annotate EBPF API's with _Must_inspect_result_
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix build break
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix test failure
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Handles may be closed by fuzzing
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix code-analysis failure
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Implement correct division by zero behavior
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Simplify code gen
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
PR #1257 removed the default program type, but didn't update
the tutorial accordingly. This PR does so, and also fixes
the help output from netsh.
Fixes#1406
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Update to latest libbpf .h files
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add libbpf_bpf_{prog,attach}_type_str APIs
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add libbpf_attach_type_by_name
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add libbpf_bpf_{link,map}_type_str
And add tests for prog type and attach type names
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add tests
And change type names to match Linux
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix cmake build
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update tests
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update docs
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add bpf_program__insn_cnt()
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add MSVC deprecated attribute to most deprecated APIs
Still haven't done bpf_object__next() or bpf_prog_load_deprecated()
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Mark bpf_object__next was deprecated
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix some test failures
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Suppress instead of disable deprecated warnings
To simplify diffs
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Merge with latest main
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* PR feedback
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update release data
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add NSIS support to generate a setup exe
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* More of the implementation
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add net start/stop actions to the msi
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Cleanup
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* First step in conversion to common install script
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Convert to common setup script
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Snapshot before cleanup
this version does install the netsh helper
it does not delete the files from system32 on uninstall
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Cleanup
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* More cleanup
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix build
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix driver test
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Drop verifier fuzzer test to 15 mins
Same as the bpf2c fuzzer. This removes 15 mins from the long pole
for CI/CD.
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Build ELF parse at compile time using EverParse
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix build
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Mark unsafe strings via unsafe_string class
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Cleanup string handling
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Update expected output in tests
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Build break
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
* port quota
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix port_quota load
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
* Reject malformed ELF file with bad section size
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Reject empty sections
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Validate all sections before use
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Enable bpf2c fuzzer and execution context fuzzer in CI/CD
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Create bpf2c fuzzer corpus
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Make absolute path and strip trailing slash from it. (#1175)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Add libsancov.lib when building fuzzer (#1179)
* Add libsancov.lib when building fuzzer
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* upload artifacts as dumps
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Bpf2c fuzzer fix build (#1180)
* Disable caching of verifier cmake project for now
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix dump upload path
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix dump upload path
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix crash dump upload
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Add Execution Context corpus
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Limit fuzzing to 15 minutes
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix artifact path
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix yaml to corectly upload artifacts
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix yaml to corectly upload artifacts
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix yaml to corectly upload artifacts
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Bpf2c fuzzer fix build (#1182)
* Disable caching of verifier cmake project for now
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Limit fuzzing memory
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Validate symbols offset
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Reject maps that have no associated symbols
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* Add libfuzzer based fuzzer.
See: https://www.llvm.org/docs/LibFuzzer.html
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix ELF parsing bugs found by fuzzer
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Make verifier fuzzer compile in Debug configuration
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Cleanup fuzzer code
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Setup/cleanup state for fuzzing
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix debug build of execution_context_fuzzer
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix verifier
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Pickup latest ebpf-verifier
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Remove corpus from git
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix CR/LF mangling in ELF files
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Remove corpus from git
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Fix build break
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Enable debug fuzzer build
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
* Update to latest verifier
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update test based on latest verifier changes
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix execution context fuzzer
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
* Make bpf_object__open_file work with native files
* Update bpf_object__open_file()
* Add bpf_object__open()
* Rename ebpf_enumerate_sections() to ebpf_enumerate_program_sections()
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Remove ebpf_program_load
And add a couple of windows-specific libbpf related APIs
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix bug in enumerate sections hit by tail_call_multiple_um.dll
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix program_name field in object_open
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Cleanup
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix order of PE sections returned
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Bug fix
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Bug fix
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Bug fix and revert enumerate_sections rename
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Updated expected bpf2c output
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix analysis warning
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Updated issue number in TODO comments
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Address Anurag's feedback
Signed-off-by: Dave Thaler <dthaler@microsoft.com>