Fix dangling pointer with empty scandir

This commit is contained in:
Jeremy Soller
2025-05-06 21:28:05 -06:00
parent 78bab94ee0
commit a31584cdef
+6 -1
View File
@@ -270,7 +270,12 @@ pub unsafe extern "C" fn scandir(
-1
} else {
unsafe {
*namelist = vec.leak();
// Empty CVecs use a dangling pointer which cannot be freed, return null instead
if vec.is_empty() {
*namelist = ptr::null_mut();
} else {
*namelist = vec.leak();
}
}
platform::ERRNO.set(old_errno);