krb5: Default homedir access to !issuid()
Also get rid of the global static `allow_homedir` and its mutex. We don't need this in-tree.
This commit is contained in:
		@@ -452,7 +452,8 @@ krb5_init_context(krb5_context *context)
 | 
				
			|||||||
        goto out;
 | 
					        goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    p->flags |= KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
					    if (!issuid())
 | 
				
			||||||
 | 
					        p->flags |= KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ret = krb5_get_default_config_files(&files);
 | 
					    ret = krb5_get_default_config_files(&files);
 | 
				
			||||||
    if(ret)
 | 
					    if(ret)
 | 
				
			||||||
@@ -1426,21 +1427,12 @@ _krb5_init_etype(krb5_context context,
 | 
				
			|||||||
 * Allow homedir access
 | 
					 * Allow homedir access
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static HEIMDAL_MUTEX homedir_mutex = HEIMDAL_MUTEX_INITIALIZER;
 | 
					 | 
				
			||||||
static krb5_boolean allow_homedir = TRUE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
 | 
					KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
 | 
				
			||||||
_krb5_homedir_access(krb5_context context)
 | 
					_krb5_homedir_access(krb5_context context)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    krb5_boolean allow;
 | 
					    if (context)
 | 
				
			||||||
 | 
					        return !!(context->flags & KRB5_CTX_F_HOMEDIR_ACCESS);
 | 
				
			||||||
    if (context && (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) == 0)
 | 
					    return !issuid();
 | 
				
			||||||
	return FALSE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    HEIMDAL_MUTEX_lock(&homedir_mutex);
 | 
					 | 
				
			||||||
    allow = allow_homedir;
 | 
					 | 
				
			||||||
    HEIMDAL_MUTEX_unlock(&homedir_mutex);
 | 
					 | 
				
			||||||
    return allow;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -1462,20 +1454,14 @@ _krb5_homedir_access(krb5_context context)
 | 
				
			|||||||
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
 | 
					KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
 | 
				
			||||||
krb5_set_home_dir_access(krb5_context context, krb5_boolean allow)
 | 
					krb5_set_home_dir_access(krb5_context context, krb5_boolean allow)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    krb5_boolean old;
 | 
					    krb5_boolean old = _krb5_homedir_access(context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (context) {
 | 
					    if (context) {
 | 
				
			||||||
	old = (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) ? TRUE : FALSE;
 | 
					 | 
				
			||||||
	if (allow)
 | 
						if (allow)
 | 
				
			||||||
	    context->flags |= KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
						    context->flags |= KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    context->flags &= ~KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
						    context->flags &= ~KRB5_CTX_F_HOMEDIR_ACCESS;
 | 
				
			||||||
        heim_context_set_homedir_access(context->hcontext, allow ? 1 : 0);
 | 
					        heim_context_set_homedir_access(context->hcontext, allow ? 1 : 0);
 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
	HEIMDAL_MUTEX_lock(&homedir_mutex);
 | 
					 | 
				
			||||||
	old = allow_homedir;
 | 
					 | 
				
			||||||
	allow_homedir = allow;
 | 
					 | 
				
			||||||
	HEIMDAL_MUTEX_unlock(&homedir_mutex);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return old;
 | 
					    return old;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user