Skip to content

Commit ff624fe

Browse files
authored
Reduce number of bytes read for PCX header (#9004)
2 parents d7a45cc + 7341e70 commit ff624fe

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/PIL/PcxImagePlugin.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def _open(self) -> None:
5454
# header
5555
assert self.fp is not None
5656

57-
s = self.fp.read(128)
57+
s = self.fp.read(68)
5858
if not _accept(s):
5959
msg = "not a PCX file"
6060
raise SyntaxError(msg)
@@ -66,6 +66,8 @@ def _open(self) -> None:
6666
raise SyntaxError(msg)
6767
logger.debug("BBox: %s %s %s %s", *bbox)
6868

69+
offset = self.fp.tell() + 60
70+
6971
# format
7072
version = s[1]
7173
bits = s[3]
@@ -102,7 +104,6 @@ def _open(self) -> None:
102104
break
103105
if mode == "P":
104106
self.palette = ImagePalette.raw("RGB", s[1:])
105-
self.fp.seek(128)
106107

107108
elif version == 5 and bits == 8 and planes == 3:
108109
mode = "RGB"
@@ -128,9 +129,7 @@ def _open(self) -> None:
128129
bbox = (0, 0) + self.size
129130
logger.debug("size: %sx%s", *self.size)
130131

131-
self.tile = [
132-
ImageFile._Tile("pcx", bbox, self.fp.tell(), (rawmode, planes * stride))
133-
]
132+
self.tile = [ImageFile._Tile("pcx", bbox, offset, (rawmode, planes * stride))]
134133

135134

136135
# --------------------------------------------------------------------

0 commit comments

Comments
 (0)