From 94fbdd51591478eabf22afafad955c5bde75d2a7 Mon Sep 17 00:00:00 2001 From: Wildan Mubarok Date: Mon, 15 Sep 2025 21:14:53 +0000 Subject: [PATCH 1/2] Fix grp implementation --- src/header/grp/mod.rs | 8 ++------ tests/grp/getgrnam_r.c | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/header/grp/mod.rs b/src/header/grp/mod.rs index 0cbb2ce496..e4bb1e0b8b 100644 --- a/src/header/grp/mod.rs +++ b/src/header/grp/mod.rs @@ -169,11 +169,7 @@ fn parse_grp(line: String, destbuf: Option) -> Result = Vec::new(); let gr_name = buffer.next().ok_or(Error::EOF)?.to_vec(); - let gr_passwd = if cfg!(target_os = "redox") { - Vec::new() - } else { - buffer.next().ok_or(Error::EOF)?.to_vec() - }; + let gr_passwd = buffer.next().ok_or(Error::EOF)?.to_vec(); gr_gid = String::from_utf8(buffer.next().ok_or(Error::EOF)?.to_vec()) .map_err(|err| Error::FromUtf8Error(err))? .parse::() @@ -295,7 +291,7 @@ pub unsafe extern "C" fn getgrnam(name: *const c_char) -> *mut group { grp.reference.gr_name, name, strlen(grp.reference.gr_name).min(strlen(name)), - ) > 0 + ) == 0 } { return grp.into_global(); } diff --git a/tests/grp/getgrnam_r.c b/tests/grp/getgrnam_r.c index 851b334610..694d4fe1c9 100644 --- a/tests/grp/getgrnam_r.c +++ b/tests/grp/getgrnam_r.c @@ -8,7 +8,7 @@ void test_getgrnam(const char *gr_name) { struct group* out = getgrnam(gr_name); if (out == NULL) { - printf("Did not find a group '%s'", gr_name); + printf("Did not find a group '%s'\n", gr_name); return; } From 2f35c4a665b4997e5232297dc1b943bd10e42811 Mon Sep 17 00:00:00 2001 From: Wildan Mubarok Date: Mon, 15 Sep 2025 21:29:27 +0000 Subject: [PATCH 2/2] Fix getgrouplist len --- src/header/grp/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header/grp/mod.rs b/src/header/grp/mod.rs index e4bb1e0b8b..ec013240c5 100644 --- a/src/header/grp/mod.rs +++ b/src/header/grp/mod.rs @@ -515,7 +515,7 @@ pub unsafe extern "C" fn getgrouplist( if groups_found as usize > grps.len() { -1 } else { - grps.len() as c_int + groups_found } }