[ 
https://issues.apache.org/jira/browse/IMAGING-389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aryan Ganjoo updated IMAGING-389:
---------------------------------
    Description: 
BinaryFunctions.searchQuad(int, InputStream) misses byte sequences in two 
cases: a target with a byte >= 0x80 is compared against signed bytes, and a 
partial-match mismatch discards a byte that could begin the next match. For 
example, searching for 0xFFD8FFE0 in {0xFF,0xD8,0xFF,0xE0,7} fails; searching 
for "AAAB" in "AAAAB" also fails. Expected: both searches return after 
consuming exactly the matching four bytes. Actual: they consume to EOF and 
report no match.

A local regression check failed against pristine master 
0edbbafa28d4852c7789651cf561b0cd8698f315 and passed after replacing the 
reset-on-mismatch search with a four-byte sliding window. BinaryFunctionsTest, 
full mvn -q verify, and the default mvn build passed locally. The fix is 
submitted as https://github.com/apache/commons-imaging/pull/562; hosted checks 
and maintainer review are pending. This report is distinct from the existing 
BinaryFunctions issues found by searching the IMAGING Jira project.

  was:
BinaryFunctions.searchQuad(int, InputStream) misses byte sequences in two 
cases: a target with a byte >= 0x80 is compared against signed bytes, and a 
partial-match mismatch discards a byte that could begin the next match. For 
example, searching for 0xFFD8FFE0 in {0xFF,0xD8,0xFF,0xE0,7} fails; searching 
for "AAAB" in "AAAAB" also fails. Expected: both searches return after 
consuming exactly the matching four bytes. Actual: they consume to EOF and 
report no match.

A local regression check failed against pristine master 
0edbbafa28d4852c7789651cf561b0cd8698f315 and passed after replacing the 
reset-on-mismatch search with a four-byte sliding window. BinaryFunctionsTest 
and full mvn -q verify passed locally on the candidate. The patch is local and 
has not yet been submitted as a PR. This report is distinct from the existing 
BinaryFunctions issues found by searching the IMAGING Jira project.


> BinaryFunctions.searchQuad misses high-bit and overlapping byte sequences
> -------------------------------------------------------------------------
>
>                 Key: IMAGING-389
>                 URL: https://issues.apache.org/jira/browse/IMAGING-389
>             Project: Commons Imaging
>          Issue Type: Bug
>            Reporter: Aryan Ganjoo
>            Priority: Major
>
> BinaryFunctions.searchQuad(int, InputStream) misses byte sequences in two 
> cases: a target with a byte >= 0x80 is compared against signed bytes, and a 
> partial-match mismatch discards a byte that could begin the next match. For 
> example, searching for 0xFFD8FFE0 in {0xFF,0xD8,0xFF,0xE0,7} fails; searching 
> for "AAAB" in "AAAAB" also fails. Expected: both searches return after 
> consuming exactly the matching four bytes. Actual: they consume to EOF and 
> report no match.
> A local regression check failed against pristine master 
> 0edbbafa28d4852c7789651cf561b0cd8698f315 and passed after replacing the 
> reset-on-mismatch search with a four-byte sliding window. 
> BinaryFunctionsTest, full mvn -q verify, and the default mvn build passed 
> locally. The fix is submitted as 
> https://github.com/apache/commons-imaging/pull/562; hosted checks and 
> maintainer review are pending. This report is distinct from the existing 
> BinaryFunctions issues found by searching the IMAGING Jira project.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to