summaryrefslogtreecommitdiffstats
path: root/libutil
diff options
context:
space:
mode:
Diffstat (limited to 'libutil')
-rw-r--r--libutil/libutil.h1
-rw-r--r--libutil/pw_util.c11
2 files changed, 11 insertions, 1 deletions
diff --git a/libutil/libutil.h b/libutil/libutil.h
index c79eaac..2ac5e97 100644
--- a/libutil/libutil.h
+++ b/libutil/libutil.h
@@ -155,6 +155,7 @@ int pw_edit(int _notsetuid);
int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2);
void pw_fini(void);
int pw_init(const char *_dir, const char *_master);
+void pw_initpwd(struct passwd *_pw);
char *pw_make(const struct passwd *_pw);
char *pw_make_v7(const struct passwd *_pw);
int pw_mkdb(const char *_user);
diff --git a/libutil/pw_util.c b/libutil/pw_util.c
index 112b6d8..1659c97 100644
--- a/libutil/pw_util.c
+++ b/libutil/pw_util.c
@@ -652,8 +652,16 @@ pw_dup(const struct passwd *pw)
#include "pw_scan.h"
/*
- * Wrapper around an internal libc function
+ * Wrapper around some internal libc functions.
*/
+
+void
+pw_initpwd(struct passwd *pw)
+{
+
+ __pw_initpwd(pw);
+}
+
struct passwd *
pw_scan(const char *line, int flags)
{
@@ -662,6 +670,7 @@ pw_scan(const char *line, int flags)
if ((bp = strdup(line)) == NULL)
return (NULL);
+ __pw_initpwd(&pw);
if (!__pw_scan(bp, &pw, flags)) {
free(bp);
return (NULL);