mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-21 03:34:54 +00:00
Fix use after free and reintroduce code from earlier commit
This commit is contained in:
10
src/main.zig
10
src/main.zig
@@ -704,6 +704,9 @@ pub fn main() !void {
|
|||||||
const password_text = try allocator.dupeZ(u8, password.text.items);
|
const password_text = try allocator.dupeZ(u8, password.text.items);
|
||||||
defer allocator.free(password_text);
|
defer allocator.free(password_text);
|
||||||
|
|
||||||
|
// Give up TTY
|
||||||
|
_ = termbox.tb_shutdown();
|
||||||
|
|
||||||
session_pid = try std.posix.fork();
|
session_pid = try std.posix.fork();
|
||||||
if (session_pid == 0) {
|
if (session_pid == 0) {
|
||||||
const current_environment = session.label.list.items[session.label.current];
|
const current_environment = session.label.list.items[session.label.current];
|
||||||
@@ -718,6 +721,13 @@ pub fn main() !void {
|
|||||||
session_pid = -1;
|
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();
|
const auth_err = shared_err.readError();
|
||||||
if (auth_err) |err| {
|
if (auth_err) |err| {
|
||||||
auth_fails += 1;
|
auth_fails += 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user