storkit: done 437_bug_strip_prefix_ci_panics_on_multi_byte_utf_8_input
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: "strip_prefix_ci panics on multi-byte UTF-8 input"
|
||||
---
|
||||
|
||||
# Bug 437: strip_prefix_ci panics on multi-byte UTF-8 input
|
||||
|
||||
## Description
|
||||
|
||||
The `strip_prefix_ci` function in `server/src/chat/transport/matrix/assign.rs` slices the input string at `prefix.len()` bytes without checking that the offset is a valid UTF-8 char boundary. When the input message starts with multi-byte characters (e.g. `⏺` which is 3 bytes), the slice can land mid-character, causing a panic.
|
||||
|
||||
## How to Reproduce
|
||||
|
||||
Send a Matrix message to the bot that starts with a multi-byte UTF-8 character (e.g. `⏺ storkit - wizard_confirm`) where the bot name byte length falls inside a multi-byte character.
|
||||
|
||||
## Actual Result
|
||||
|
||||
Thread panics: `byte index 6 is not a char boundary; it is inside '⏺' (bytes 4..7)`
|
||||
|
||||
## Expected Result
|
||||
|
||||
The function should return `None` (no match) without panicking, since an ASCII bot name cannot match a slice containing multi-byte characters.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] strip_prefix_ci checks is_char_boundary before slicing
|
||||
- [ ] No panic when input contains multi-byte UTF-8 characters at the prefix boundary
|
||||
Reference in New Issue
Block a user