summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libcruft/getspnam.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft/getspnam.c')
-rw-r--r--mdk-stage1/dietlibc/libcruft/getspnam.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/getspnam.c b/mdk-stage1/dietlibc/libcruft/getspnam.c
index e6573345d..a4eafbfb2 100644
--- a/mdk-stage1/dietlibc/libcruft/getspnam.c
+++ b/mdk-stage1/dietlibc/libcruft/getspnam.c
@@ -1,14 +1,11 @@
#include <shadow.h>
#include <string.h>
-#include <stdlib.h>
-struct spwd *getspnam(const char * name) {
+extern struct spwd __shadow_pw;
+extern char __shadow_buf[1000];
+
+struct spwd *getspnam(const char* name) {
struct spwd *tmp;
- setspent();
- for (;;) {
- tmp=getspent();
- if (!tmp) return 0;
- if (!strcmp(tmp->sp_namp,name))
- return tmp;
- }
+ getspnam_r(name,&__shadow_pw,__shadow_buf,sizeof(__shadow_buf),&tmp);
+ return tmp;
}