mirror of https://github.com/fairyglade/ly.git
Fix use after free and reintroduce code from earlier commit
This commit is contained in:
parent
798d9d934c
commit
1ddccf2683
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;
|
||||||
|
|
Loading…
Reference in New Issue