Avoid 2 more RSS Expanded finder pattern false positive scenarios #1692
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.
This PR addresses 2 additional finder pattern false positive scenarios found during fuzz testing Okapi encode + ZXing decode of RSS Expanded (DataBar Expanded).
First, a finder pattern false positive can easily lead to an error decoding the data character to the left of the finder pattern. When this happens, it is better to continue searching for the real finder pattern, instead of giving up completely.
Second, we can detect additional false positives by relying on the mathematical relationship between the widths of the finder patterns and the space between them, making sure that the position of the finder pattern is somewhat near where we would expect to find it, relative to the previous finder pattern.
This PR includes two additional test cases, one for each scenario addressed.