diff --git a/src/PIL/PdfParser.py b/src/PIL/PdfParser.py index b0b32b1c9dd..99ff2699977 100644 --- a/src/PIL/PdfParser.py +++ b/src/PIL/PdfParser.py @@ -692,7 +692,7 @@ def read_trailer(self) -> None: self.read_prev_trailer(self.trailer_dict[b"Prev"]) def read_prev_trailer( - self, xref_section_offset: int, processed_offsets: list[int] = [] + self, xref_section_offset: int, processed_offsets: list[int] | None = None ) -> None: assert self.buf is not None trailer_offset = self.read_xref_table(xref_section_offset=xref_section_offset) @@ -708,6 +708,8 @@ def read_prev_trailer( ) trailer_dict = self.interpret_trailer(trailer_data) if b"Prev" in trailer_dict: + if processed_offsets is None: + processed_offsets = [] processed_offsets.append(xref_section_offset) check_format_condition( trailer_dict[b"Prev"] not in processed_offsets, "trailer loop found"