Fix memory leak in inotify tests

This commit is contained in:
Johannes Altmanninger 2024-01-12 09:11:56 +01:00
parent 2d493621f4
commit e98a794d1c

View file

@ -67,16 +67,18 @@ impl UniversalNotifier for InotifyNotifier {
#[test] #[test]
fn test_inotify_notifiers() { 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::fs::remove_dir_all;
use std::path::PathBuf; 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) }; let temp_dir_ptr = unsafe { libc::mkdtemp(template.into_raw() as *mut libc::c_char) };
if temp_dir_ptr.is_null() { if temp_dir_ptr.is_null() {
panic!("failed to create temp dir"); 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 fake_uvars_path = fake_uvars_dir.clone() + "/fish_variables";
let mut notifiers = Vec::new(); let mut notifiers = Vec::new();