From 35f12b1551884fc3d9af149b9574ad01462ebfac Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Tue, 6 Aug 2024 18:15:11 +0300 Subject: [PATCH] embedded: prevent double-close of pty fd Signed-off-by: Manos Pitsidianakis --- meli/src/terminal/embedded.rs | 4 +++- meli/src/terminal/embedded/terminal.rs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/meli/src/terminal/embedded.rs b/meli/src/terminal/embedded.rs index b14f920f..f5f3db44 100644 --- a/meli/src/terminal/embedded.rs +++ b/meli/src/terminal/embedded.rs @@ -23,6 +23,7 @@ use std::os::fd::OwnedFd; use std::{ ffi::{CString, OsStr}, + mem::ManuallyDrop, os::unix::{ ffi::OsStrExt, io::{AsRawFd, FromRawFd, IntoRawFd}, @@ -178,7 +179,8 @@ pub fn create_pty(width: usize, height: usize, command: &str) -> Result, /// Pid of the embedded process pub child_pid: nix::unistd::Pid, } @@ -114,7 +114,7 @@ impl std::io::Write for Terminal { } impl Terminal { - pub fn new(stdin: std::fs::File, child_pid: nix::unistd::Pid) -> Self { + pub fn new(stdin: std::mem::ManuallyDrop, child_pid: nix::unistd::Pid) -> Self { Self { grid: EmbeddedGrid::new(), stdin,