From d29016c98c3e402ecc3e2f933371ded9844892e6 Mon Sep 17 00:00:00 2001 From: Marsman Date: Mon, 9 Feb 2026 16:10:42 +0000 Subject: [PATCH] fix: handle negative offset in seekdir --- src/header/dirent/mod.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/header/dirent/mod.rs b/src/header/dirent/mod.rs index 1cf62e6a04..68fb5111f3 100644 --- a/src/header/dirent/mod.rs +++ b/src/header/dirent/mod.rs @@ -354,10 +354,12 @@ pub unsafe extern "C" fn scandir( /// See . #[unsafe(no_mangle)] pub extern "C" fn seekdir(dir: &mut DIR, off: c_long) { - dir.seek( - off.try_into() - .expect("off must come from telldir, thus never negative"), - ); + let Ok(off) = off.try_into() else { + platform::ERRNO.set(EINVAL); + return; + }; + + dir.seek(off); } /// See .