WebAssembly / WebAssembly/binaryen
Slow to disassemble some crafted wasm files
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- WebAssembly
- Estrelas
- 8.6k
- Forks
- 885
- Merge médio
- 1d 19h
- PRs com merge (30d)
- 69
Descrição
wasm-dis may sometimes spend too much time to disassemble certain crafted wasm files.
wasm-dis-slow.zip
It turns out that inside WasmBinaryBuilder::readFunctions(), at https://github.com/WebAssembly/binaryen/blob/master/src/wasm/wasm-binary.cpp#L1073-L1080, the value num may get extremely large (I haven't figured out why yet), and subsequent operations require too much time to finish.
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece com o arquivo fornecido wasm-dis-slow.zip e inspecione WasmBinaryBuilder::readFunctions() em src/wasm/wasm-binary.cpp por volta das linhas 1073–1080, concentrando-se em como o valor num é obtido e usado. Reproduza a desmontagem lenta e determine por que num se torna extremamente grande. Está concluído quando o arquivo criado não fizer mais com que wasm-dis gaste tempo excessivo.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- cpp, wasm
- Domínio
- compilers
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100