WebAssembly / WebAssembly/binaryen
Slow to disassemble some crafted wasm files
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- WebAssembly
- Star
- 8.6k
- Fork
- 885
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 69
Mô tả
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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với tệp wasm-dis-slow.zip được cung cấp và kiểm tra WasmBinaryBuilder::readFunctions() trong src/wasm/wasm-binary.cpp quanh các dòng 1073–1080, tập trung vào cách giá trị num được lấy và sử dụng. Tái hiện quá trình disassembly chậm và xác định tại sao num trở nên cực kỳ lớn. Hoàn thành khi tệp được tạo không còn khiến wasm-dis mất quá nhiều thời gian.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp, wasm
- Lĩnh vực
- compilers
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100