|
|
From 99ed23222f315d1a6efbc240db3ff4ed04db99c6 Mon Sep 17 00:00:00 2001
|
|
|
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Zaoral?= <lzaoral@redhat.com>
|
|
|
Date: Mon, 10 Jun 2024 16:28:22 +0200
|
|
|
Subject: [PATCH] tests: fix getpwnam and getgrnam
|
|
|
MIME-Version: 1.0
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
The calls to these functions would always fail because the size of the buffer
|
|
|
was smaller than the minimum (170000) specified in the test implementations
|
|
|
of getgrnam_r and getpwnam_r. Use test_get*_match directly because getpwnam
|
|
|
and getgrnam should never fail on ERANGE.
|
|
|
|
|
|
This commit fixes the following failure in the test/root/restore.test test:
|
|
|
|
|
|
[21] $ chown bin passwd -- failed
|
|
|
chown: invalid user: ‘bin’ != ~
|
|
|
|
|
|
Fixes: 3737f000d3f17cd283f51eeacac21a71a3472053 ("use thread-safe getpwnam_r and getgrnam_r")
|
|
|
---
|
|
|
test/test_group.c | 2 +-
|
|
|
test/test_passwd.c | 4 ++--
|
|
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
|
|
diff --git a/test/test_group.c b/test/test_group.c
|
|
|
index 96dd612..42d6b07 100644
|
|
|
--- a/test/test_group.c
|
|
|
+++ b/test/test_group.c
|
|
|
@@ -136,7 +136,7 @@ struct group *getgrnam(const char *name)
|
|
|
static struct group grp;
|
|
|
struct group *result;
|
|
|
|
|
|
- (void) getgrnam_r(name, &grp, buf, sizeof(buf), &result);
|
|
|
+ (void) test_getgr_match(&grp, buf, sizeof buf, &result, match_name, name);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
diff --git a/test/test_passwd.c b/test/test_passwd.c
|
|
|
index b88ea45..ebe9dce 100644
|
|
|
--- a/test/test_passwd.c
|
|
|
+++ b/test/test_passwd.c
|
|
|
@@ -117,7 +117,7 @@ int getpwnam_r(const char *name, struct passwd *pwd, char *buf, size_t buflen,
|
|
|
*result = NULL;
|
|
|
return ERANGE;
|
|
|
}
|
|
|
- last_buflen =- 1;
|
|
|
+ last_buflen = -1;
|
|
|
|
|
|
return test_getpw_match(pwd, buf, buflen, result, match_name, name);
|
|
|
}
|
|
|
@@ -129,7 +129,7 @@ struct passwd *getpwnam(const char *name)
|
|
|
static struct passwd pwd;
|
|
|
struct passwd *result;
|
|
|
|
|
|
- (void) getpwnam_r(name, &pwd, buf, sizeof(buf), &result);
|
|
|
+ (void) test_getpw_match(&pwd, buf, sizeof(buf), &result, match_name, name);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
--
|
|
|
2.45.2
|
|
|
|