diff options
| author | Stefan Fritsch <sf@sfritsch.de> | 2014-03-29 21:56:19 +0100 |
|---|---|---|
| committer | Stefan Fritsch <sf@sfritsch.de> | 2014-03-29 21:56:45 +0100 |
| commit | 2a463b3cd73c32ee9dcd508248d0194923f435f4 (patch) | |
| tree | 2ff478255a77a55031056790918b6f983bb7b20a /modules/session | |
| parent | 86d5cc79d9d6750da8771fdb0c9ab22c19b8ad45 (diff) | |
| download | apache2-2a463b3cd73c32ee9dcd508248d0194923f435f4.tar.gz | |
Imported Upstream version 2.4.9upstream/2.4.9
Diffstat (limited to 'modules/session')
| -rw-r--r-- | modules/session/mod_session.c | 36 | ||||
| -rw-r--r-- | modules/session/mod_session_crypto.c | 2 |
2 files changed, 22 insertions, 16 deletions
diff --git a/modules/session/mod_session.c b/modules/session/mod_session.c index 89c80747..0b472a24 100644 --- a/modules/session/mod_session.c +++ b/modules/session/mod_session.c @@ -62,16 +62,16 @@ static int session_included(request_rec * r, session_dir_conf * conf) included = 0; for (i = 0; !included && i < conf->includes->nelts; i++) { const char *include = includes[i]; - if (strncmp(r->uri, include, strlen(include))) { + if (strncmp(r->uri, include, strlen(include)) == 0) { included = 1; } } } if (conf->excludes->nelts) { - for (i = 0; included && i < conf->includes->nelts; i++) { + for (i = 0; included && i < conf->excludes->nelts; i++) { const char *exclude = excludes[i]; - if (strncmp(r->uri, exclude, strlen(exclude))) { + if (strncmp(r->uri, exclude, strlen(exclude)) == 0) { included = 0; } } @@ -126,22 +126,28 @@ static apr_status_t ap_session_load(request_rec * r, session_rec ** z) /* found a session that hasn't expired? */ now = apr_time_now(); - if (!zz || (zz->expiry && zz->expiry < now)) { + if (zz) { + if (zz->expiry && zz->expiry < now) { + zz = NULL; + } + else { + /* having a session we cannot decode is just as good as having + none at all */ + rv = ap_run_session_decode(r, zz); + if (OK != rv) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01817) + "error while decoding the session, " + "session not loaded: %s", r->uri); + zz = NULL; + } + } + } - /* no luck, create a blank session */ + /* no luck, create a blank session */ + if (!zz) { zz = (session_rec *) apr_pcalloc(r->pool, sizeof(session_rec)); zz->pool = r->pool; zz->entries = apr_table_make(zz->pool, 10); - - } - else { - rv = ap_run_session_decode(r, zz); - if (OK != rv) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01817) - "error while decoding the session, " - "session not loaded: %s", r->uri); - return rv; - } } /* make sure the expiry and maxage are set, if present */ diff --git a/modules/session/mod_session_crypto.c b/modules/session/mod_session_crypto.c index 984a0487..4d65bb83 100644 --- a/modules/session/mod_session_crypto.c +++ b/modules/session/mod_session_crypto.c @@ -593,7 +593,7 @@ static const char *set_crypto_passphrase_file(cmd_parms *cmd, void *config, while (!(ap_cfg_getline(buffer, sizeof(buffer), file))) { args = buffer; while (*(arg = ap_getword_conf(cmd->pool, &args)) != '\0') { - if (*arg == '#' || *arg == 0) { + if (*arg == '#') { break; } set_crypto_passphrase(cmd, config, arg); |
