From b360b68fe8f1ab34b0bebd34df696d595415e11d Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Wed, 25 May 2022 19:57:47 -0500 Subject: [PATCH] f --- src/pixie/fileformats/jpeg.nim | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/pixie/fileformats/jpeg.nim b/src/pixie/fileformats/jpeg.nim index 9ca1375..0235ad0 100644 --- a/src/pixie/fileformats/jpeg.nim +++ b/src/pixie/fileformats/jpeg.nim @@ -842,14 +842,12 @@ proc checkRestart(state: var DecoderState) = ## Check if we might have run into a restart marker, then deal with it. dec state.todoBeforeRestart if state.todoBeforeRestart <= 0: - if state.bitsBuffered < 24: - state.fillBitBuffer() - - if state.buffer[state.pos] == 0xFF: - if state.buffer[state.pos + 1] in {0xD0 .. 0xD7}: - state.pos += 2 - else: - failInvalid("did not get expected restart marker") + if state.pos + 1 > state.len: + failInvalid() + if state.buffer[state.pos] != 0xFF or + state.buffer[state.pos + 1] notin {0xD0 .. 0xD7}: + failInvalid("did not get expected restart marker") + state.pos += 2 state.reset() proc decodeBlocks(state: var DecoderState) =