WebAssembly / WebAssembly/binaryen

Slow to disassemble some crafted wasm files

Đang mở
#1,663 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.