Commit graph

4402 commits

Author SHA1 Message Date
Sebastian Pipping
c4a0ab7265
Merge pull request #957 from libexpat/fuzzing-coverage-report
`fuzzing.yml`: Start producing code coverage report
2025-02-14 22:59:59 +01:00
Sebastian Pipping
879c8faecd fuzzing.yml: Evaluate one single fuzzer at a time, in parallel 2025-02-14 22:00:18 +01:00
Sebastian Pipping
0fa794d333 fuzzing.yml: Make clear that fuzzing logs are about the last batch 2025-02-14 22:00:18 +01:00
Sebastian Pipping
39d2ebb467 fuzzing.yml: Start producing code coverage report 2025-02-14 22:00:18 +01:00
Sebastian Pipping
deb5af9954
Merge pull request #956 from libexpat/get-off-of-ubuntu-20-04
Get CI off of about-to-be-removed Ubuntu 20.04
2025-02-12 02:21:35 +01:00
Sebastian Pipping
71dcb3a835 expat_config_h.yml: Sync expat_config.h.in expectation for Ubuntu 22.04 2025-02-12 01:08:30 +01:00
Sebastian Pipping
dee6610959 linux.yml: Drop workarounds for installing wine32:i386
.. that where needed with GitHub Actions image "ubuntu-20.04"
but are no longer necessary with image "ubuntu-22.04"
2025-02-12 01:07:09 +01:00
Sebastian Pipping
f6e6bb1578 Get CI off of about-to-be-removed Ubuntu 20.04 2025-02-12 01:06:29 +01:00
Sebastian Pipping
571b1bb05e
Merge pull request #955 from libexpat/fix-build-for-oss-fuzz
fuzzers|cmake: Disable `xml_lpm_fuzzer` for `-DEXPAT_OSSFUZZ_BUILD=ON`
2025-02-11 15:05:34 +01:00
Sebastian Pipping
392fb29e67 fuzzers|cmake: Disable xml_lpm_fuzzer for -DEXPAT_OSSFUZZ_BUILD=ON
.. to give OSS-Fuzz a chance at a successful build while their
images are based on Ubuntu 20.04 with too-old Protobuf

PS: Display this commit with "-w" to see it best.
2025-02-11 14:24:57 +01:00
Sebastian Pipping
c577981ffa
Merge pull request #954 from libexpat/fuzzers-bump-libprotobuf-mutator
Fuzzers: Bump libprotobuf-mutator to v1.4-8-g75f1720
2025-02-07 20:31:15 +01:00
Sebastian Pipping
9e906b5bf1 fuzzers|cmake|ci: Save compile time on libprotobuf-mutator examples
As a side effect, CI no longer needs to install liblzma-dev.
2025-02-07 19:05:59 +01:00
Sebastian Pipping
14424c70fb fuzzers|cmake: Bump libprotobuf-mutator to v1.4-8-g75f1720 2025-02-07 19:05:59 +01:00
Sebastian Pipping
78767684c3 fuzzers|cmake: Break up long line (before making it even longer) 2025-02-07 19:05:59 +01:00
Sebastian Pipping
e89e86a90b
Merge pull request #953 from valord577/patch-1
Fix warning: no `-Wno-pedantic-ms-format` (`-Wunknown-warning-option`) for LLVM MinGW
2025-02-07 17:17:15 +01:00
valord577
4cb89e6128
fix warning: no -Wno-pedantic-ms-format for llvm mingw
ONLY gcc has `-Wno-pedantic-ms-format`:

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wno-pedantic-ms-format
2025-02-07 15:51:26 +08:00
Sebastian Pipping
c628ac4d95
Merge pull request #952 from libexpat/fuzzers-stop-linking-against-abseil-explicitly
fuzzers|cmake: Stop linking `xml_lpm_fuzzer` against Abseil, explicitly
2025-02-07 00:07:22 +01:00
Sebastian Pipping
3e82dcb383 fuzzers|cmake: Stop linking xml_lpm_fuzzer against Abseil, explicitly
This reverts commit d7e41e2de8
but also also adjusts CI.
2025-02-06 23:24:49 +01:00
Sebastian Pipping
079fc26a06
Merge pull request #951 from libexpat/fuzzers-check-for-protobuf-compiler
fuzzers|cmake: Check for availability of protobuf compiler
2025-02-03 19:18:59 +01:00
Sebastian Pipping
84ccc3e341 fuzzers|cmake: Check for working protobuf compiler 2025-02-03 18:34:49 +01:00
Sebastian Pipping
caac94df7e
Merge pull request #950 from libexpat/pull-617-finish
Add new fuzzer `xml_lpm_fuzzer` (replaces pull request #617)
2025-02-03 02:59:07 +01:00
Sebastian Pipping
a0b8957db2 Sync file headers 2025-02-03 01:37:51 +01:00
Sebastian Pipping
c18e90f927 xml_lpm_fuzzer: Use common attribution format 2025-02-03 01:36:22 +01:00
Sebastian Pipping
2a615bc3c5 xml_lpm_fuzzer: Unstuck MallocHook and ReallocHook
.. so that they fail single allocations, not all
allocations after a certain point.  Previously
fail_allocations of [6, 2, 20] worked the same way
fail_allocations of [2], likely by accidently.
2025-02-03 01:23:41 +01:00
Sebastian Pipping
1ed7be5bf7 linux.yml: Drop -DEXPAT_BUILD_FUZZERS=ON case in favor of fuzzing.yml 2025-02-02 22:35:01 +01:00
Sebastian Pipping
57d6e4ad56 fuzzing.yml: Assert xml_lpm_fuzzer executability
.. while it is not being using to run any regression tests
2025-02-02 22:34:50 +01:00
Sebastian Pipping
69a7a7090d fuzzing.yml: Bump to Ubuntu 24.04
Due to broken(?) CMake in Ubuntu 22.04, symptom was:
> CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
> Missing variable is:
> CMAKE_CXX_LINK_EXECUTABLE
> CMake Generate step failed.  Build files cannot be regenerated correctly.
2025-02-02 22:19:06 +01:00
Sebastian Pipping
8d7f50bc6e fuzzing.yml: Pass C++ compiler and compile flags to CMake 2025-02-02 22:19:06 +01:00
Sebastian Pipping
0497f35d04 fuzzing.yml: Install build dependencies of xml_lpm_fuzzer 2025-02-02 22:19:06 +01:00
clang-format 19.1.2
922e95a393 xml_lpm_fuzzer: Apply clang-format 19.1.2 2025-02-02 22:19:06 +01:00
Sebastian Pipping
b223d302cb xml_lpm_fuzzer: Address warning -Wunused-parameter 2025-02-02 22:19:06 +01:00
Sebastian Pipping
15b1af6716 xml_lpm_fuzzer: Address warning -Wsign-compare
Symptom was:
> [..]/expat/fuzz/xml_lpm_fuzzer.cpp:157:25: error: comparison of integers of different signs: 'int' and 'unsigned int' [-Werror,-Wsign-compare]
>   157 |       for (int i = 0; i < content->numchildren; ++i) {
>       |                       ~ ^ ~~~~~~~~~~~~~~~~~~~~
> [..]/expat/fuzz/xml_lpm_fuzzer.cpp:183:25: error: comparison of integers of different signs: 'int' and 'unsigned int' [-Werror,-Wsign-compare]
>   183 |       for (int i = 0; i < content->numchildren; ++i) {
>       |                       ~ ^ ~~~~~~~~~~~~~~~~~~~~
> [..]/expat/fuzz/xml_lpm_fuzzer.cpp:413:24: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare]
>   413 |   for (size_t i = 0; i < testcase.fail_allocations_size(); ++i) {
>       |                      ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> [..]/expat/fuzz/xml_lpm_fuzzer.cpp:421:24: error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare]
>   421 |   for (size_t i = 0; i < testcase.actions_size(); ++i) {
>       |                      ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
2025-02-02 22:19:06 +01:00
Sebastian Pipping
48afe247ce xml_lpm_fuzzer|cmake: Replace -fsanitize=fuzzer-no-link by -fsanitize=fuzzer
Same as commit bf9caf7ac4, different target.
2025-02-02 22:19:06 +01:00
Sebastian Pipping
ea98a87971 xml_lpm_fuzzer: Add trailing newline 2025-02-02 22:19:06 +01:00
Sebastian Pipping
ea492aa54d xml_lpm_fuzzer: Add missing call to InitializeParser after XML_ParserReset 2025-02-02 22:19:06 +01:00
Sebastian Pipping
6933ee68f1 xml_lpm_fuzzer: Resolve dead code 2025-02-02 22:19:06 +01:00
Sebastian Pipping
d7736d9cfa xml_lpm_fuzzer: Resolve unused function parameter 2025-02-02 22:19:06 +01:00
Sebastian Pipping
4962f317d2 xml_lpm_fuzzer: Rename function to better match its nature 2025-02-02 22:19:06 +01:00
Sebastian Pipping
e183cb9811 xml_lpm_fuzzer: Be more thorough in model validation 2025-02-02 22:19:06 +01:00
Sebastian Pipping
5f42436e02 xml_lpm_fuzzer: Fix mistaken use of XML_Char 2025-02-02 22:19:06 +01:00
Sebastian Pipping
da8219b9af xml_lpm_fuzzer: Mark variable "fail_allocations" as global 2025-02-02 22:19:05 +01:00
Sebastian Pipping
2bb8a29428 xml_lpm_fuzzer: Mark variable "allocation_count" as global 2025-02-02 22:19:05 +01:00
Sebastian Pipping
59771b8f7f xml_lpm_fuzzer: Mark variables external_entity{,_size} as global 2025-02-02 22:19:05 +01:00
Sebastian Pipping
2b73e1bc00 xml_lpm_fuzzer: Mark variable "encoding" as global
This resolves variable shadowing in a few places also,
e.g. in XmlDeclHandler and UnknownEncodingHandler.
2025-02-02 22:19:05 +01:00
Sebastian Pipping
2ca8b39167 xml_lpm_fuzzer: Protect assert(...) from NDEBUG 2025-02-02 22:19:05 +01:00
Sebastian Pipping
5551e205d2 fuzzers|cmake: Drop redundant linker language to simplify
The other fuzzers need it for EXPAT_OSSFUZZ_BUILD when C becomes C++
but not this one.
2025-02-02 22:19:05 +01:00
Sebastian Pipping
ba8744ae19 fuzzers|cmake: Fix parallel build for xml_lpm_fuzzer 2025-02-02 22:19:05 +01:00
Sebastian Pipping
d7e41e2de8 fuzzers|cmake: Link xml_lpm_fuzzer against Abseil, explicitly 2025-02-02 22:19:05 +01:00
Sebastian Pipping
2fd3844a7c fuzzers|cmake: Stop compiling libprotobuf-mutator with tests 2025-02-02 22:19:05 +01:00
Sebastian Pipping
c2fd39564c fuzzers|cmake: Patch default -Werror out of libprotobuf-mutator
.. and make it use C++ 17 for recent Abseil
2025-02-02 22:19:05 +01:00