krb5: Remove uses of KRB5_USE_PATH_TOKENS
This commit is contained in:
		@@ -88,6 +88,7 @@ static krb5_error_code
 | 
			
		||||
init_ccapi(krb5_context context)
 | 
			
		||||
{
 | 
			
		||||
    const char *lib = NULL;
 | 
			
		||||
    char *explib = NULL;
 | 
			
		||||
 | 
			
		||||
    HEIMDAL_MUTEX_lock(&acc_mutex);
 | 
			
		||||
    if (init_func) {
 | 
			
		||||
@@ -104,26 +105,19 @@ init_ccapi(krb5_context context)
 | 
			
		||||
    if (lib == NULL) {
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	lib = "/System/Library/Frameworks/Kerberos.framework/Kerberos";
 | 
			
		||||
#elif defined(KRB5_USE_PATH_TOKENS) && defined(_WIN32)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
	lib = "%{LIBDIR}/libkrb5_cc.dll";
 | 
			
		||||
#else
 | 
			
		||||
	lib = "/usr/lib/libkrb5_cc.so";
 | 
			
		||||
	lib = "%{LIBDIR}/libkrb5_cc.so";
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_DLOPEN
 | 
			
		||||
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
    {
 | 
			
		||||
      char * explib = NULL;
 | 
			
		||||
      if (_krb5_expand_path_tokens(context, lib, 0, &explib) == 0) {
 | 
			
		||||
	cc_handle = dlopen(explib, RTLD_LAZY|RTLD_LOCAL|RTLD_GROUP);
 | 
			
		||||
	free(explib);
 | 
			
		||||
      }
 | 
			
		||||
    if (_krb5_expand_path_tokens(context, lib, 0, &explib) == 0) {
 | 
			
		||||
        cc_handle = dlopen(explib, RTLD_LAZY|RTLD_LOCAL|RTLD_GROUP);
 | 
			
		||||
        free(explib);
 | 
			
		||||
    }
 | 
			
		||||
#else
 | 
			
		||||
    cc_handle = dlopen(lib, RTLD_LAZY|RTLD_LOCAL|RTLD_GROUP);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (cc_handle == NULL) {
 | 
			
		||||
	HEIMDAL_MUTEX_unlock(&acc_mutex);
 | 
			
		||||
 
 | 
			
		||||
@@ -187,8 +187,7 @@ allocate_ccache(krb5_context context,
 | 
			
		||||
                krb5_ccache *id)
 | 
			
		||||
{
 | 
			
		||||
    krb5_error_code ret;
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
    char * exp_residual = NULL;
 | 
			
		||||
    char *exp_residual = NULL;
 | 
			
		||||
    int filepath;
 | 
			
		||||
 | 
			
		||||
    filepath = (strcmp("FILE", ops->prefix) == 0
 | 
			
		||||
@@ -196,37 +195,22 @@ allocate_ccache(krb5_context context,
 | 
			
		||||
		 || strcmp("SCC", ops->prefix) == 0);
 | 
			
		||||
 | 
			
		||||
    ret = _krb5_expand_path_tokens(context, residual, filepath, &exp_residual);
 | 
			
		||||
    if (ret)
 | 
			
		||||
	return ret;
 | 
			
		||||
    if (ret == 0)
 | 
			
		||||
        ret = _krb5_cc_allocate(context, ops, id);
 | 
			
		||||
 | 
			
		||||
    residual = exp_residual;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    ret = _krb5_cc_allocate(context, ops, id);
 | 
			
		||||
    if (ret) {
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
	if (exp_residual)
 | 
			
		||||
	    free(exp_residual);
 | 
			
		||||
#endif
 | 
			
		||||
	return ret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((*id)->ops->version < KRB5_CC_OPS_VERSION_5
 | 
			
		||||
	|| (*id)->ops->resolve_2 == NULL) {
 | 
			
		||||
	ret = (*id)->ops->resolve(context, id, residual);
 | 
			
		||||
    } else {
 | 
			
		||||
	ret = (*id)->ops->resolve_2(context, id, residual, subsidiary);
 | 
			
		||||
    if (ret == 0) {
 | 
			
		||||
        if ((*id)->ops->version < KRB5_CC_OPS_VERSION_5
 | 
			
		||||
            || (*id)->ops->resolve_2 == NULL) {
 | 
			
		||||
            ret = (*id)->ops->resolve(context, id, exp_residual);
 | 
			
		||||
        } else {
 | 
			
		||||
            ret = (*id)->ops->resolve_2(context, id, exp_residual, subsidiary);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (ret) {
 | 
			
		||||
	free(*id);
 | 
			
		||||
        *id = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
    if (exp_residual)
 | 
			
		||||
	free(exp_residual);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    free(exp_residual);
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -105,11 +105,7 @@ struct credentials {
 | 
			
		||||
#define 	CLOCK_SKEW	5*60
 | 
			
		||||
 | 
			
		||||
#ifndef TKT_ROOT
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#define TKT_ROOT "%{TEMP}/tkt"
 | 
			
		||||
#else
 | 
			
		||||
#define TKT_ROOT "/tmp/tkt"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct _krb5_krb_auth_data {
 | 
			
		||||
 
 | 
			
		||||
@@ -363,15 +363,7 @@ typedef AP_REQ krb5_ap_req;
 | 
			
		||||
 | 
			
		||||
struct krb5_cc_ops;
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#define KRB5_USE_PATH_TOKENS 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#define KRB5_DEFAULT_CCFILE_ROOT "%{TEMP}/krb5cc_"
 | 
			
		||||
#else
 | 
			
		||||
#define KRB5_DEFAULT_CCFILE_ROOT "/tmp/krb5cc_"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define KRB5_DEFAULT_CCROOT "FILE:" KRB5_DEFAULT_CCFILE_ROOT
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -292,13 +292,8 @@ typedef struct krb5_context_data {
 | 
			
		||||
    krb5_boolean no_ticket_store;       /* Don't store service tickets */
 | 
			
		||||
} krb5_context_data;
 | 
			
		||||
 | 
			
		||||
#ifndef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_FILE "FILE:/tmp/krb5cc_%{uid}"
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_DIR "DIR:/tmp/krb5cc_%{uid}_dir/"
 | 
			
		||||
#else
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_FILE "FILE:%{TEMP}/krb5cc_%{uid}"
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_DIR "DIR:%{TEMP}/krb5cc_%{uid}_dir/"
 | 
			
		||||
#endif
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_API "API:"
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_KCM_KCM "KCM:%{uid}"
 | 
			
		||||
#define KRB5_DEFAULT_CCNAME_KCM_API "API:%{uid}"
 | 
			
		||||
 
 | 
			
		||||
@@ -2183,9 +2183,8 @@ _krb5_parse_moduli(krb5_context context, const char *file,
 | 
			
		||||
    if (file == NULL)
 | 
			
		||||
	file = MODULI_FILE;
 | 
			
		||||
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
    {
 | 
			
		||||
        char * exp_file;
 | 
			
		||||
        char *exp_file;
 | 
			
		||||
 | 
			
		||||
	if (_krb5_expand_path_tokens(context, file, 1, &exp_file) == 0) {
 | 
			
		||||
            f = fopen(exp_file, "r");
 | 
			
		||||
@@ -2194,9 +2193,6 @@ _krb5_parse_moduli(krb5_context context, const char *file,
 | 
			
		||||
            f = NULL;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#else
 | 
			
		||||
    f = fopen(file, "r");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (f == NULL) {
 | 
			
		||||
	*moduli = m;
 | 
			
		||||
 
 | 
			
		||||
@@ -62,11 +62,7 @@ typedef struct krb5_scache {
 | 
			
		||||
#define	SCACHE(X)	((krb5_scache *)(X)->data.data)
 | 
			
		||||
 | 
			
		||||
#define SCACHE_DEF_NAME		"Default-cache"
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#define KRB5_SCACHE_DB	"%{TEMP}/krb5scc_%{uid}"
 | 
			
		||||
#else
 | 
			
		||||
#define KRB5_SCACHE_DB	"/tmp/krb5scc_%{uid}"
 | 
			
		||||
#endif
 | 
			
		||||
#define KRB5_SCACHE_DB		"%{TEMP}/krb5scc_%{uid}"
 | 
			
		||||
#define KRB5_SCACHE_NAME	"SCC:"   KRB5_SCACHE_DB ":" SCACHE_DEF_NAME
 | 
			
		||||
 | 
			
		||||
#define SCACHE_INVALID_CID	((sqlite_uint64)-1)
 | 
			
		||||
 
 | 
			
		||||
@@ -50,11 +50,8 @@ static int debug_flag	= 0;
 | 
			
		||||
static int version_flag = 0;
 | 
			
		||||
static int help_flag	= 0;
 | 
			
		||||
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#define TEST_CC_NAME "%{TEMP}/krb5-cc-test-foo"
 | 
			
		||||
#else
 | 
			
		||||
#define TEST_CC_NAME "/tmp/krb5-cc-test-foo"
 | 
			
		||||
#endif
 | 
			
		||||
#define EXP_TEST_CC_NAME "/tmp/krb5-cc-test-foo"
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
test_default_name(krb5_context context)
 | 
			
		||||
@@ -62,6 +59,13 @@ test_default_name(krb5_context context)
 | 
			
		||||
    krb5_error_code ret;
 | 
			
		||||
    const char *p, *test_cc_name = TEST_CC_NAME;
 | 
			
		||||
    char *p1, *p2, *p3;
 | 
			
		||||
    char *exp_test_cc_name;
 | 
			
		||||
 | 
			
		||||
    ret = _krb5_expand_path_tokens(context, test_cc_name, 1,
 | 
			
		||||
                                   &exp_test_cc_name);
 | 
			
		||||
    if (ret)
 | 
			
		||||
        krb5_err(context, 1, ret, "_krb5_expand_path_tokens(%s) failed",
 | 
			
		||||
                 test_cc_name);
 | 
			
		||||
 | 
			
		||||
    p = krb5_cc_default_name(context);
 | 
			
		||||
    if (p == NULL)
 | 
			
		||||
@@ -89,14 +93,12 @@ test_default_name(krb5_context context)
 | 
			
		||||
	krb5_errx (context, 1, "krb5_cc_default_name 2 failed");
 | 
			
		||||
    p3 = estrdup(p);
 | 
			
		||||
 | 
			
		||||
#ifndef KRB5_USE_PATH_TOKENS
 | 
			
		||||
    /* If we are using path tokens, we don't expect the p3 and
 | 
			
		||||
       test_cc_name to match since p3 is going to have expanded
 | 
			
		||||
       tokens. */
 | 
			
		||||
    if (strcmp(p3, test_cc_name) != 0)
 | 
			
		||||
#ifndef WIN32
 | 
			
		||||
    if (strcmp(exp_test_cc_name, EXP_TEST_CC_NAME) != 0)
 | 
			
		||||
	krb5_errx (context, 1, "krb5_cc_set_default_name 1 failed");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    free(exp_test_cc_name);
 | 
			
		||||
    free(p1);
 | 
			
		||||
    free(p2);
 | 
			
		||||
    free(p3);
 | 
			
		||||
@@ -324,7 +326,7 @@ struct {
 | 
			
		||||
    { "%{nulll}", 1, NULL },
 | 
			
		||||
    { "%{does not exist}", 1, NULL },
 | 
			
		||||
    { "%{}", 1, NULL },
 | 
			
		||||
#ifdef KRB5_USE_PATH_TOKENS
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
    { "%{APPDATA}", 0, NULL },
 | 
			
		||||
    { "%{COMMON_APPDATA}", 0, NULL},
 | 
			
		||||
    { "%{LOCAL_APPDATA}", 0, NULL},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user