Fix use after free and reintroduce code from earlier commit

This commit is contained in:
peterc-s 2024-10-22 14:42:42 +01:00
parent 798d9d934c
commit 1ddccf2683
No known key found for this signature in database
GPG Key ID: 41E806B8F7F83E59
1 changed files with 10 additions and 0 deletions

View File

@ -704,6 +704,9 @@ pub fn main() !void {
const password_text = try allocator.dupeZ(u8, password.text.items);
defer allocator.free(password_text);
// Give up TTY
_ = termbox.tb_shutdown();
session_pid = try std.posix.fork();
if (session_pid == 0) {
const current_environment = session.label.list.items[session.label.current];
@ -718,6 +721,13 @@ pub fn main() !void {
session_pid = -1;
}
// Take back TTY
_ = termbox.tb_init();
_ = termbox.tb_set_output_mode(termbox.TB_OUTPUT_NORMAL);
// Reinitialise buffer to avoid use after free
buffer = TerminalBuffer.init(config, labels_max_length, random);
const auth_err = shared_err.readError();
if (auth_err) |err| {
auth_fails += 1;