WerWolv / WerWolv/PatternLanguage

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.

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

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

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.