From e98a794d1ca0ff62e6307bd178f71f24d413bb1e Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Fri, 12 Jan 2024 09:11:56 +0100 Subject: [PATCH] Fix memory leak in inotify tests --- fish-rust/src/universal_notifier/inotify.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fish-rust/src/universal_notifier/inotify.rs b/fish-rust/src/universal_notifier/inotify.rs index afc52a46e..50472d41f 100644 --- a/fish-rust/src/universal_notifier/inotify.rs +++ b/fish-rust/src/universal_notifier/inotify.rs @@ -67,16 +67,18 @@ fn notification_fd_became_readable(&self, fd: RawFd) -> bool { #[test] fn test_inotify_notifiers() { - use crate::common::{charptr2wcstring, wcs2osstring}; + use crate::common::{cstr2wcstring, wcs2osstring}; + use std::ffi::CString; use std::fs::remove_dir_all; use std::path::PathBuf; - let template = std::ffi::CString::new("/tmp/fish_inotify_XXXXXX").unwrap(); + let template = CString::new("/tmp/fish_inotify_XXXXXX").unwrap(); let temp_dir_ptr = unsafe { libc::mkdtemp(template.into_raw() as *mut libc::c_char) }; if temp_dir_ptr.is_null() { panic!("failed to create temp dir"); } - let fake_uvars_dir = charptr2wcstring(temp_dir_ptr); + let tmp_dir = unsafe { CString::from_raw(temp_dir_ptr) }; + let fake_uvars_dir = cstr2wcstring(tmp_dir.as_bytes_with_nul()); let fake_uvars_path = fake_uvars_dir.clone() + "/fish_variables"; let mut notifiers = Vec::new();