[interpreter] Text lexer accepts surrogate escapes and crashes on escapes past U+10FFFF
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #2295 của @rossberg — đã merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 66/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- backend
Hướng nghiên cứu
Bắt đầu với trường hợp escape u của lexer chuỗi văn bản và kiểm tra cách nó gọi Utf8.encode; issue không nêu tên tệp hay đường dẫn kiểm thử. Kiểm tra các ví dụ được cung cấp để tìm giá trị surrogate và giá trị ngoài phạm vi, rồi chạy các bài kiểm thử liên quan của trình thông dịch. Công việc hoàn tất khi cả hai đầu vào đều báo chuỗi sai định dạng thay vì tạo ra UTF-8 không hợp lệ hoặc một ngoại lệ không được bắt.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
\u{n} is well-formed only for n < 0xD800 or 0xE000 <= n < 0x110000.
Surrogates are accepted and encoded as invalid UTF-8:
(module (memory 1) (data (i32.const 0) "\u{D800}"))
This parses, and the data segment holds ED A0 80. It should be malformed.
Escapes past U+10FFFF crash the interpreter instead of reporting a syntax error:
(assert_malformed (module quote "(data \"\\u{110000}\")") "malformed UTF-8")
uncaught exception Wasm.Utf8.Utf8
The u case of the string lexer calls Utf8.encode with no check and no handler. encode doesn't reject surrogates and raises Utf8 for n >= 0x110000.
Tested at 340650f.
- Ngôn ngữ chính
- WebAssembly
- Star
- 3.5k
- Fork
- 540
- Merge trung bình
- 1 ngày 6 phút
- Pull request đã merge (30 ngày)
- 25
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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.
Issue khác của WebAssembly/spec
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
WebAssembly/spec#2300 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
il2al: host function rules become two independent conditionals and ignore the new store `s'`Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
WebAssembly/spec#2279 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
WebAssembly/spec#2258 · 4 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[js-api] A mutable global import allocates a const global before LinkErrorCó thể đã có người làm @chicoxyzzy đã nhận 18 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
WebAssembly/spec#2253 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[spectec] Wasm 1.0: `$instantiate` missing premisesCó thể đã có người làm @rossberg đã nhận 44 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
WebAssembly/spec#2245 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của WebAssembly/spec
Issue tương tự
-
lesson-submission pending-review
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Ikalus1988/MisakaNet#3789 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
V4 alert-rule reads have no scope gate, so any authenticated credential can list alert rulesĐang mởalerts bug effort:S P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
nightscout/nocturne#2511 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Python Volcengine provider returns failures instead of raising themCó thể đã có người làm @Ricardo-M-L đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
agent-infra/sandbox#248 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Textractor leaves empty temporary files when remote retrieval failsCó thể đã có người làm @HuaTNA đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày