Stream: git-wasmtime

Topic: wasmtime / PR #7621 winch(fuzzing): Tighten fuzzing criteria


view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 19:42):

saulecabrera opened PR #7621 from saulecabrera:winch-tighten-fuzzing-criteria to bytecodealliance:main:

This commit tightens the fuzzing criteria for Winch. The previous implementation only accounted for unsupported instructions. However, unsupported types can also cause the fuzzer to crash.

Winch currently doesn't support v128 and most of the Ref types.

<!--
Please make sure you include the following information:

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 19:42):

saulecabrera requested alexcrichton for a review on PR #7621.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 19:42):

saulecabrera requested wasmtime-fuzz-reviewers for a review on PR #7621.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 19:53):

alexcrichton commented on PR #7621:

Could this perhaps be done by disabling more wasm-smith features around here such as simd, relaxed_simd, and reference_types?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:07):

saulecabrera commented on PR #7621:

Indeed, I initially wanted to do something along those lines, but Winch partially supports reference types (funcref, table.size, table.grow, table.fill, etc), for which the fuzzer already found bugs (!) so I wouldn't want to disable that proposal entirely, with that in mind even if we disabled some proposals like simd via wasm-smith I'd still need some check like the one included here. So that's why I thought including a check for all types made sense. But I'm good disabling simd and relaxed simd via wasm-smith and keeping the check for reference types. What do you think?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:43):

saulecabrera edited a comment on PR #7621:

Indeed, I initially wanted to do something along those lines, but Winch partially supports reference types (funcref, table.size, table.grow, table.fill, etc), for which the fuzzer already found bugs (!) so I wouldn't want to disable that proposal entirely, with that in mind even if we disabled some proposals like simd via wasm-smith, I think, I'd still need some check like the one included here. So that's why I thought including a check for all types made sense. But I'm good disabling simd and relaxed simd via wasm-smith and keeping the check for reference types. What do you think?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:43):

saulecabrera edited a comment on PR #7621:

Indeed, I initially wanted to do something along those lines, but Winch partially supports reference types (funcref, table.size, table.grow, table.fill, etc), for which the fuzzer already found bugs (!) so I wouldn't want to disable that proposal entirely, with that in mind even if we disabled some proposals like simd via wasm-smith, I think, I'd still need some check like the one included here, for the reference types piece. So that's why I thought including a check for all types made sense. But I'm good disabling simd and relaxed simd via wasm-smith and keeping the check for reference types. What do you think?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:44):

github-actions[bot] commented on PR #7621:

Subscribe to Label Action

cc @fitzgen

<details>
This issue or pull request has been labeled: "fuzzing"

Thus the following users have been cc'd because of the following labels:

To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.

Learn more.
</details>

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:53):

alexcrichton commented on PR #7621:

Ah ok yeah if some of a proposal is implemented then the current strategy works best, and if you're already going to have this to support some reference-types bits I think it's reasonable to go ahead and throw v128 in there as well, so let's stick with this PR :+1:

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 20:53):

alexcrichton submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 30 2023 at 21:18):

alexcrichton merged PR #7621.


Last updated: Dec 23 2024 at 12:05 UTC