Unnamed repository; edit this file 'description' to name the repository.
fix(editor): prevent overflow in count modifier (#10930)
RoloEdits 2024-06-13
parent 62655e9 · commit 9c479e6
-rw-r--r--helix-term/src/ui/editor.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index d584afbb..a071bfaa 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -938,7 +938,11 @@ impl EditorView {
// If the count is already started and the input is a number, always continue the count.
(key!(i @ '0'..='9'), Some(count)) => {
let i = i.to_digit(10).unwrap() as usize;
- cxt.editor.count = NonZeroUsize::new(count.get() * 10 + i);
+ let count = count.get() * 10 + i;
+ if count > 100_000_000 {
+ return;
+ }
+ cxt.editor.count = NonZeroUsize::new(count);
}
// A non-zero digit will start the count if that number isn't used by a keymap.
(key!(i @ '1'..='9'), None) if !self.keymaps.contains_key(mode, event) => {