WebAssembly / WebAssembly/binaryen
Slow to disassemble some crafted wasm files
Personne n'a encore pris cette issue.
- Langage dominant
- WebAssembly
- Étoiles
- 8.6k
- Forks
- 885
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 69
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez avec le fichier fourni wasm-dis-slow.zip et examinez WasmBinaryBuilder::readFunctions() dans src/wasm/wasm-binary.cpp autour des lignes 1073–1080, en vous concentrant sur la manière dont la valeur num est obtenue et utilisée. Reproduisez le désassemblage lent et déterminez pourquoi num devient extrêmement grand. Le travail est terminé lorsque le fichier conçu ne fait plus passer un temps excessif à wasm-dis.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, wasm
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100