-
Notifications
You must be signed in to change notification settings - Fork 63
Closed
Description
Found by cargo-fuzz.
This crashes:
extern crate unicode_segmentation;
use unicode_segmentation::UnicodeSegmentation;
fn main() {
let s = "\u{1F938}\u{1F3FE}\u{1F3FE}";
let forward = UnicodeSegmentation::graphemes(s, true).collect::<Vec<_>>();
let forward_reversed = forward.into_iter().rev().collect::<Vec<_>>();
let reverse = UnicodeSegmentation::graphemes(s, true).rev().collect::<Vec<_>>();
assert_eq!(forward_reversed, reverse);
}
It panics with (manually escaped):
left `["\u{1F938}\u{1F3FE}\u{1F3FE}"]`, right: `["\u{1F3FE}", "\u{1F938}\u{1F3FE}"]`
The original emoji is (uniview) U+1F938 PERSON DOING CARTWHEEL followed by two Fitzpatrick skin color modifiers. I suspect this error will happen whenever you have two skin color modifiers after a modifiable emoji.
Metadata
Metadata
Assignees
Labels
No labels