std::mem::find_sequence/find_sequence_in_range/find_string_in_range fails when sequence exists across read block boundaries

Open
#159 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp
Domain
backend

Research direction

Start in lib/source/pl/lib/std/mem.cpp at the linked code around line 26, focusing on find_sequence, find_sequence_in_range, and find_string_in_range. Reproduce searches where the target sequence crosses a 4K read-block boundary, including different start offsets. Done means each function finds sequences spanning adjacent blocks consistently instead of returning -1.

Written by the indexing model from the issue text.

Description

Hello,

As in title, the code linked below appears to search through the data in blocks of 4K bytes.

https://github.com/WerWolv/PatternLanguage/blob/772902594d97369e1e8659f9b7770d6be6cca55c/lib/source/pl/lib/std/mem.cpp#L26

If the sequence spans two blocks, then the function will miss it.

I am seeing what could be the effect of this where if I change the start offset value the find_string_in_range function will return -1 or the actual position.

Thanks

Dominant language
C++
Stars
275
Forks
75
Avg merge
1d 22h
Merged PRs (30d)
10

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from WerWolv/PatternLanguage

All issues in WerWolv/PatternLanguage

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.