Commit Graph

16 Commits

Author SHA1 Message Date
7f9e49213e Enhance type checking for function types in loader and improve error handling (#4294)
Especially when GC is enabled, a valid item of `module->types` needs additional
checks before casting to WASMFuncType.

Also, avoid overflowing if reftype_map_count is 0.

Additionally, correctly set IN_OSS_FUZZ based on CFLAGS_ENV for sanitizer
configuration. Update ASan and UBSan messages for clarity in non-oss-fuzz
environments.
2025-05-28 20:29:09 +08:00
a9966897b6 use a selected llvm libs list to replace the full list (#4232) 2025-04-29 11:41:34 +08:00
1d39b9c834 bypass vptr santizier (#4231)
LLVM, by default, disables the use of C++'s built-in Run-Time Type Information.
This decision is primarily driven by concerns about code size and efficiency.

But '-fsanitize=vptr' not allowed with '-fno-rtti'.
2025-04-29 10:05:02 +08:00
791e60f533 feat(fuzz): add a new fuzzing target about aot compiler (#4121)
support llvm-jit running mode as another fuzzing target
2025-04-28 21:44:04 +08:00
d085d1ccf7 Keep fix the CMake compatibility issue (#4180)
```
CMake Error at CMakeLists.txt:4 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
```
2025-04-15 12:51:19 +08:00
964037c9b5 feat: add support for EXTERNREF value type and enable AOT validator in fuzz tests (#4083) 2025-02-17 13:34:18 +08:00
9989b1cc1b [fuzzing] Use software bound-check during fuzzing (#4003)
* Update CMakeLists.txt of fuzzing

- enable software bound-check
- enable wasi
- disable libc builtin and multiple modules

* Fix off-by-one error in result offset calculation for function calls
2025-01-06 11:36:11 +08:00
0d9cea434c wasm-mutator-fuzz: Set compilers earlier (#3585)
CMAKE_C_COMPILER etc should be set before project(),
in which cmake tries to decide which compiler to use.
2024-07-02 11:27:31 +08:00
ea582fbc07 wasm-mutator-fuzz: Make compilers overridable (#3578)
eg.
```shell
cmake .. \
-DCMAKE_C_COMPILER=/usr/local/opt/llvm@15/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@15/bin/clang++
```
2024-07-01 08:43:33 +08:00
40c41d5110 Fix several issues reported by oss-fuzz (#3526)
- possible integer overflow in adjust_table_max_size:
  unsigned integer overflow: 2684354559 * 2 cannot be represented in type 'uint32'
- limit max memory size in wasm_runtime_malloc
- add more checks in aot loader
- adjust compilation options
2024-06-13 16:06:36 +08:00
42ad4728f6 wasm-mutator-fuzz: Fix build errors and warnings for macOS (#3519)
Tested with the homebrew version of LLVM 15.
(xcode doesn't seem to ship the fuzzer runtime.)
2024-06-13 07:48:55 +08:00
54b0e73cb9 wasm-mutator-fuzz: Use another variable to check if in oss-fuzz environment (#3518)
In order to pass a oss-fuzz build step *check_build*.

Previous `HELPER` is only for local test.
2024-06-12 11:13:22 +08:00
67638e24f4 wasm-mutator-fuzz: Generate more kinds of corpus (#3487) 2024-05-31 11:16:14 +08:00
d29802c451 Fix two issues to make fuzzing test quit earlier (#3471)
- Add a marco to limit the maxi allocable memory size of fuzz test to
  2GB to avoid libFuzzer out-of-memory
- Check global type in load_global_import and load_global_section
2024-05-30 14:55:21 +08:00
a9eff69dd9 wasm-mutator-fuzz: Adapt to oss-fuzz compilation (#3464) 2024-05-27 10:33:36 +08:00
a2f3c7298f Add wasm-mutator-fuzz test (#3420) 2024-05-21 12:01:13 +08:00