Repository navigation
Fix/exif offset hardening - #477
Merged
Merged
Conversation
- Avoid relying on libjpeg's saved-marker list to determine byte offsets of EXIF segments, as unsaved markers (e.g. COM, APP14, DQT) preceding EXIF cause offset miscalculation and bitstream desynchronization. - Search source JPEG header directly for the extracted EXIF payload and validate segment bounds before splicing. - Guard against repeated 0xFF marker fill bytes in the primary JPEG marker scanning loop in appendGainMap. - Add comprehensive regression tests in JpegDecoderHelperTest covering marker ordering, duplicate EXIF segments, COM/APP14/DQT prefixes, and full API-4 recombination. Fixes #474 Ref: PR #475
…rflow in find_marker_payload_offset - Change marker_code parameter type from uint32_t to uint8_t in find_marker_payload_offset to match 8-bit JPEG marker byte representation and avoid mixed-width comparisons. - Guard against signed long overflow when casting segment_payload_offset on very large input buffers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #475:
marker_codeparameter type fromuint32_ttouint8_tinfind_marker_payload_offsetto match the 8-bit JPEG marker byte representation and avoid mixed-width comparisons.longoverflow when castingsegment_payload_offseton very large input buffers.