mirror of
https://github.com/foliojs/pdfkit.git
synced 2025-12-08 20:15:54 +00:00
Fix a JPEG parsing issue with Progressive DCT
This commit is contained in:
parent
431a5186fe
commit
e60eae758d
@ -9,14 +9,21 @@ class JPEG
|
||||
|
||||
constructor: (@data) ->
|
||||
len = data.length
|
||||
data.pos = 2 # Skip the first two bytes of JPEG identifier.
|
||||
|
||||
if data.readUInt16() isnt 0xFFD8
|
||||
throw "SOI not found in JPEG"
|
||||
|
||||
markers = [0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7,
|
||||
0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF]
|
||||
|
||||
while data.pos < len
|
||||
marker = data.readUInt16()
|
||||
break if marker is 0xFFC0
|
||||
break if marker in markers
|
||||
data.pos += data.readUInt16()
|
||||
|
||||
data.pos += 2
|
||||
throw "Invalid JPEG." unless marker in markers
|
||||
data.pos += 2
|
||||
|
||||
@bits = data.readByte()
|
||||
@height = data.readShort()
|
||||
@width = data.readShort()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user