Commit a82cc933 authored by Ruediger Pluem's avatar Ruediger Pluem
Browse files

Merge r425210 from trunk:

* Add a check to make sure that the base provider and the alias names are
  different and also that the alias has not been registered before.

PR: 40051
Submitted by: bnicholes
Reviewed by: bnicholes, rpluem, fielding


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@425740 13f79535-47bb-0310-9956-ffa450edef68
parent f771a03a
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGES: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
                                                        -*- coding: utf-8 -*-
Changes with Apache 2.2.3
  *) mod_authn_alias: Add a check to make sure that the base provider and the
     alias names are different and also that the alias has not been registered
     before. PR 40051. [Brad Nicholes]
  *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP
     client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529.
     [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>]
+0 −5
Changes for STATUS: 0 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -76,11 +76,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

    * mod_authn_alias: Add a check to make sure that the base provider 
       and the alias names are different and also that the alias has 
       not been registered before. PR#40051
       http://issues.apache.org/bugzilla/attachment.cgi?id=18636
       +1: bnicholes, rpluem, fielding

PATCHES PROPOSED TO BACKPORT FROM TRUNK:

+15 −1
Changes for modules/aaa/mod_authn_alias.c: 15 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a
    char *provider_alias;
    char *provider_name;
    const char *errmsg;
    const authn_provider *provider = NULL;
    ap_conf_vector_t *new_auth_config = ap_create_per_dir_config(cmd->pool);
    authn_alias_srv_conf *authcfg =
        (authn_alias_srv_conf *)ap_get_module_config(cmd->server->module_config,
@@ -161,6 +162,19 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a
                           "> directive requires additional arguments", NULL);
    }

    if (strcasecmp(provider_name, provider_alias) == 0) {
        return apr_pstrcat(cmd->pool,
                           "The alias provider name must be different from the base provider name.", NULL);
    }

    /* Look up the alias provider to make sure that it hasn't already been registered. */
    provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_alias, "0");
    if (provider) {
        return apr_pstrcat(cmd->pool, "The alias provider ", provider_alias,
                           " has already be registered previously as either a base provider or an alias provider.",
                           NULL);
    }

    /* walk the subsection configuration to get the per_dir config that we will
       merge just before the real provider is called. */
    cmd->override = OR_ALL|ACCESS_CONF;
@@ -168,7 +182,7 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a

    if (!errmsg) {
        provider_alias_rec *prvdraliasrec = apr_pcalloc(cmd->pool, sizeof(provider_alias_rec));
        const authn_provider *provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_name,"0");
        provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_name, "0");

        /* Save off the new directory config along with the original provider name
           and function pointer data */