diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2006-06-24 02:39:52 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2006-06-24 02:39:52 +0000 |
| commit | f9b6c2de5c160844e2fb5cb8ea7c6ef4292ee4c4 (patch) | |
| tree | e8b1cc02464414e5d5fc15807e030b5570f4e115 /src/lib | |
| parent | 036d40a6c10d88b9d6b8507ae1319790d9d8d61b (diff) | |
| download | krb5-f9b6c2de5c160844e2fb5cb8ea7c6ef4292ee4c4.tar.gz krb5-f9b6c2de5c160844e2fb5cb8ea7c6ef4292ee4c4.tar.xz krb5-f9b6c2de5c160844e2fb5cb8ea7c6ef4292ee4c4.zip | |
Fix krb5_get_profile to create a new profile duplicating the list of
files from the one in the provided context, instead of constructing
and checking the file list from scratch. Uses a new function in the
profile library, not put into the public API yet.
* util/profile/prof_init.c (profile_copy): New function.
* util/profile/prof_int.h (profile_copy): Declare it.
* lib/krb5/os/Makefile.in (LOCALINCLUDES): Look in the profile source dir.
* lib/krb5/os/init_os_ctx.c (krb5_get_profile): Replace all the previous code
with a call to profile_copy.
ticket: 3925
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18209 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/krb5/os/Makefile.in | 1 | ||||
| -rw-r--r-- | src/lib/krb5/os/init_os_ctx.c | 26 |
2 files changed, 3 insertions, 24 deletions
diff --git a/src/lib/krb5/os/Makefile.in b/src/lib/krb5/os/Makefile.in index db391ab15..403f591e6 100644 --- a/src/lib/krb5/os/Makefile.in +++ b/src/lib/krb5/os/Makefile.in @@ -7,6 +7,7 @@ PROG_LIBPATH=-L$(TOPLIBD) PROG_RPATH=$(KRB5_LIBDIR) DEFS= DEFINES=-DLIBDIR=\"$(KRB5_LIBDIR)\" +LOCALINCLUDES=-I$(SRCTOP)/util/profile ##DOS##BUILDTOP = ..\..\.. ##DOS##PREFIXDIR=os diff --git a/src/lib/krb5/os/init_os_ctx.c b/src/lib/krb5/os/init_os_ctx.c index d26743ac6..893355ef9 100644 --- a/src/lib/krb5/os/init_os_ctx.c +++ b/src/lib/krb5/os/init_os_ctx.c @@ -30,6 +30,7 @@ #include "k5-int.h" #include "os-proto.h" +#include "prof_int.h" /* XXX for profile_copy, not public yet */ #ifdef USE_LOGIN_LIBRARY #include "KerberosLoginPrivate.h" @@ -414,30 +415,7 @@ krb5_os_init_context(krb5_context ctx, krb5_boolean kdc) krb5_error_code KRB5_CALLCONV krb5_get_profile (krb5_context ctx, profile_t *profile) { - krb5_error_code retval = 0; - profile_filespec_t *files = 0; - - retval = os_get_default_config_files(&files, ctx->profile_secure); - - if (!retval) { - retval = profile_init((const_profile_filespec_t *) files, - profile); - } - - if (files) - free_filespecs(files); - - if (retval == ENOENT) - return KRB5_CONFIG_CANTOPEN; - - if ((retval == PROF_SECTION_NOTOP) || - (retval == PROF_SECTION_SYNTAX) || - (retval == PROF_RELATION_SYNTAX) || - (retval == PROF_EXTRA_CBRACE) || - (retval == PROF_MISSING_OBRACE)) - return KRB5_CONFIG_BADFORMAT; - - return retval; + return profile_copy (ctx->profile, profile); } |
