diff options
author | Kenjiro Tsuji <Kenjiro.Tsuji@Sun.COM> | 2009-01-16 11:59:37 -0800 |
---|---|---|
committer | Kenjiro Tsuji <Kenjiro.Tsuji@Sun.COM> | 2009-01-16 11:59:37 -0800 |
commit | b9175c69691c8949bec97fb8f689b7d1efdb05bb (patch) | |
tree | 9c9b02d762f4cb6afa112bd1505698f027b3fbdf /usr/src/lib/libsecdb/common | |
parent | 65c8f1c0a342917e5c22dcf2b006e6307631ed67 (diff) | |
download | illumos-joyent-b9175c69691c8949bec97fb8f689b7d1efdb05bb.tar.gz |
6783069 libc must not use defread internally
Diffstat (limited to 'usr/src/lib/libsecdb/common')
-rw-r--r-- | usr/src/lib/libsecdb/common/chkauthattr.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/usr/src/lib/libsecdb/common/chkauthattr.c b/usr/src/lib/libsecdb/common/chkauthattr.c index 04b1fe8846..440de4df8a 100644 --- a/usr/src/lib/libsecdb/common/chkauthattr.c +++ b/usr/src/lib/libsecdb/common/chkauthattr.c @@ -19,12 +19,10 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -266,8 +264,9 @@ _get_user_defs(const char *user, char **def_auth, char **def_prof) { char *cp; char *profs; + void *defp; - if (defopen(AUTH_POLICY) != 0) { + if ((defp = defopen_r(AUTH_POLICY)) == NULL) { if (def_auth != NULL) { *def_auth = NULL; } @@ -278,9 +277,9 @@ _get_user_defs(const char *user, char **def_auth, char **def_prof) } if (def_auth != NULL) { - if ((cp = defread(DEF_AUTH)) != NULL) { + if ((cp = defread_r(DEF_AUTH, defp)) != NULL) { if ((*def_auth = strdup(cp)) == NULL) { - (void) defopen(NULL); + defclose_r(defp); return (-1); } } else { @@ -289,21 +288,21 @@ _get_user_defs(const char *user, char **def_auth, char **def_prof) } if (def_prof != NULL) { if (is_cons_user(user) && - (cp = defread(DEF_CONSUSER)) != NULL) { + (cp = defread_r(DEF_CONSUSER, defp)) != NULL) { if ((*def_prof = strdup(cp)) == NULL) { - (void) defopen(NULL); + defclose_r(defp); return (-1); } } - if ((cp = defread(DEF_PROF)) != NULL) { + if ((cp = defread_r(DEF_PROF, defp)) != NULL) { int prof_len; if (*def_prof == NULL) { if ((*def_prof = strdup(cp)) == NULL) { - (void) defopen(NULL); + defclose_r(defp); return (-1); } - (void) defopen(NULL); + defclose_r(defp); return (0); } @@ -312,7 +311,7 @@ _get_user_defs(const char *user, char **def_auth, char **def_prof) if ((profs = malloc(prof_len)) == NULL) { free(*def_prof); *def_prof = NULL; - (void) defopen(NULL); + defclose_r(defp); return (-1); } (void) snprintf(profs, prof_len, "%s,%s", *def_prof, @@ -322,7 +321,7 @@ _get_user_defs(const char *user, char **def_auth, char **def_prof) } } - (void) defopen(NULL); + defclose_r(defp); return (0); } |