WebAssembly / WebAssembly/binaryen
Slow to disassemble some crafted wasm files
Nessuno ha ancora preso questa issue.
- Lingua principale
- WebAssembly
- Stelle
- 8.6k
- Fork
- 885
- Merge medio
- 1g 19h
- PR unite (30g)
- 69
Descrizione
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.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con il file fornito wasm-dis-slow.zip ed esamina WasmBinaryBuilder::readFunctions() in src/wasm/wasm-binary.cpp intorno alle righe 1073–1080, concentrandoti su come viene ottenuto e utilizzato il valore num. Riproduci la disassemblazione lenta e determina perché num diventa estremamente grande. Il lavoro è completato quando il file creato non fa più impiegare a wasm-dis un tempo eccessivo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp, wasm
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100