From c3603443f9fa275f0bad54a017b7ed9dd2f558d2 Mon Sep 17 00:00:00 2001 From: gensss Date: Tue, 27 Aug 2024 20:30:15 +0200 Subject: [PATCH] open_file: fix possible underflow in delete_to_previous_path_segment When opening a file, if one writes only "/" then presses ctrl+backspace the "path" slice will end up [0 .. -1]. This crashes in debug build, and possibly in some rare circumstances in release build. --- src/tui/mode/mini/open_file.zig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tui/mode/mini/open_file.zig b/src/tui/mode/mini/open_file.zig index e7f2332..698a311 100644 --- a/src/tui/mode/mini/open_file.zig +++ b/src/tui/mode/mini/open_file.zig @@ -228,6 +228,10 @@ fn process_project_manager(self: *Self, m: tp.message) !void { fn delete_to_previous_path_segment(self: *Self) void { self.complete_trigger_count = 0; if (self.file_path.items.len == 0) return; + if (self.file_path.items.len == 1) { + self.file_path.clearRetainingCapacity(); + return; + } const path = if (self.file_path.items[self.file_path.items.len - 1] == std.fs.path.sep) self.file_path.items[0 .. self.file_path.items.len - 2] else