Skip to content

Commit 602dacd

Browse files
authored
Merge pull request #509 from iffy/bad-jpeg
Fix "did not get expected restart marker" error
2 parents 2eaca8e + 0a0a5fa commit 602dacd

3 files changed

Lines changed: 5 additions & 0 deletions

File tree

src/pixie/fileformats/jpeg.nim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,6 +899,9 @@ proc checkRestart(state: var DecoderState) =
899899
if state.todoBeforeRestart <= 0:
900900
if state.pos + 1 > state.len:
901901
failInvalid()
902+
# Handle getting a restart marker right at the end.
903+
if state.buffer[state.pos] == 0xFF and state.buffer[state.pos+1] == 0xD9:
904+
return
902905
if state.buffer[state.pos] != 0xFF or
903906
state.buffer[state.pos + 1] notin 0xD0'u8 .. 0xD7'u8:
904907
failInvalid("did not get expected restart marker")
6.13 KB
Loading

tests/jpegsuite.nim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,6 @@ const jpegSuiteFiles* = [
4545
"tests/fileformats/jpeg/masters/f6-exif.jpg",
4646
"tests/fileformats/jpeg/masters/f7-exif.jpg",
4747
"tests/fileformats/jpeg/masters/f8-exif.jpg",
48+
49+
"tests/fileformats/jpeg/masters/restartmarker.jpg",
4850
]

0 commit comments

Comments
 (0)