File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ let pos s = !(s.pos)
1616let eos s = (pos s = len s)
1717
1818let check n s = if pos s + n > len s then raise EOS
19- let skip n s = check n s; s.pos := ! (s.pos) + n
19+ let skip n s = if n < 0 then raise EOS else check n s; s.pos := ! (s.pos) + n
2020
2121let read s = Char. code (s.bytes.[! (s.pos)])
2222let peek s = if eos s then None else Some (read s)
@@ -39,7 +39,7 @@ let error s pos msg = raise (Code (region s pos pos, msg))
3939let require b s pos msg = if not b then error s pos msg
4040
4141let guard f s =
42- try f s with EOS -> error s (len s) " unexpected end of binary or function"
42+ try f s with EOS -> error s (len s) " unexpected end of section or function"
4343
4444let get = guard get
4545let get_string n = guard (get_string n)
Original file line number Diff line number Diff line change 7373 " unexpected end"
7474)
7575
76+ (assert_malformed
77+ (module binary
78+ " \00 asm" " \01\00\00\00 "
79+ " \00\00\00\05\01\00\07\00\00 "
80+ )
81+ " unexpected end"
82+ )
83+
7684(assert_malformed
7785 (module binary
7886 " \00 asm" " \01\00\00\00 "
You can’t perform that action at this time.
0 commit comments