-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ROB: Fixing infinite loop in ArrayObject read_from_stream #2928
ROB: Fixing infinite loop in ArrayObject read_from_stream #2928
Conversation
…nexpectedly
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2928 +/- ##
=======================================
Coverage 96.39% 96.39%
=======================================
Files 52 52
Lines 8728 8730 +2
Branches 1589 1590 +1
=======================================
+ Hits 8413 8415 +2
Misses 186 186
Partials 129 129 ☔ View full report in Codecov by Sentry. |
Thanks for the PR. Do you own all the necessary copyrights for shipping this file? Otherwise, please upload it to a comment and download it on the fly instead (see existing tests). |
Uploading as comment just to be on the safe side. |
## What's new ### Deprecations (DEP) - Deprecate with replacement CCITParameters (#3019) by @j-t-1 - Correct deprecation of interiour_color (#2947) by @j-t-1 ### New Features (ENH) - Support alternative (U)F names for embedded file retrieval (#3072) by @stefan6419846 - Adding support for reading .metadata.keywords (#2939) by @Lucas-C ### Bug Fixes (BUG) - Handle further Tf operators in text extraction layout mode (#3073) by @blushingpenguin - Ensure `add_metadata` can deal with `_info = None` (#3040) by @xmo-odoo - Handle IndirectObject in CCITTFaxDecode filter (#2965) by @stefan6419846 - Handle chained colorspace for inline images when no filter is set (#3008) by @stefan6419846 - Avoid extracting inline images twice and dropping other operators (#3002) by @stefan6419846 - Fixed reference of value with `str.__new__` in TextStringObject (#2952) by @thomas-forte - Handle indirect objects in font width calculations (#2967) by @nsw42 - Title sometimes is bytes and not str (#2930) by @reformy - Fix undefined variable for text extraction (regression) (#2934) by @stefan6419846 - Don't close stream passed to PdfWriter.write() (#2909) by @alexaryn ### Robustness (ROB) - Handle zero height fonts when extracting text (#3075) by @blushingpenguin - Deal with content streams not containing streams (#3005) by @stefan6419846 - Gracefully handle some text operators when the operands are missing (#3006) by @stefan6419846 - Fall back to non-Adobe Ascii85 format for missing end markers (#3007) by @stefan6419846 - Ignore odd-length strings when processing cmap lines (#3009) by @stefan6419846 - Skip annotation destination being NullObject in PdfWriter (#2964) by @stefan6419846 - Skip destination page being None in PdfWriter (#2963) by @dxsooo - Fix infinite loop case when reading null objects within an Array by @jakep-allenai - Fixing infinite loop in ArrayObject read_from_stream (#2928) by @jakep-allenai ### Documentation (DOC) - Add note about default line colors (#3014) by @stefan6419846 ### Developer Experience (DEV) - Remove ignoring Ruff rule PGH004 (#3071) by @j-t-1 - Tidy ignore array in tool.ruff.lint (#3069) by @j-t-1 - Move Windows CI to Python 3.13 (#3003) by @stefan6419846 - Move to Ubuntu 22.04 (#3004) by @stefan6419846 ### Maintenance (MAINT) - Fix formatting of warning message and include exception message (#3076) by @stefan6419846 - Narrow return type for `ContentStream.operations` (#2941) by @kmurphy4 ### Testing (TST) - Fix image similarity for upcoming Ubuntu 24.04 (#3039) by @stefan6419846 - Replace broken Apache Tika Corpora urls (#3041) by @stefan6419846 ### Code Style (STY) - Add form feed to WHITESPACES (#3054) by @j-t-1 - Lots of small internal changes by @j-t-1 [Full Changelog](5.1.0...5.2.0) Signed-off-by: stefan6419846 <[email protected]>
Found a pdf in the wild where the stream ends abruptly when reading an ArrayObject. This was causing a big memory leak and infinite loop as pypdf kept reading the same record over and over again.