summaryrefslogtreecommitdiff
path: root/modules/session
diff options
context:
space:
mode:
authorStefan Fritsch <sf@sfritsch.de>2014-03-29 21:56:19 +0100
committerStefan Fritsch <sf@sfritsch.de>2014-03-29 21:56:45 +0100
commit2a463b3cd73c32ee9dcd508248d0194923f435f4 (patch)
tree2ff478255a77a55031056790918b6f983bb7b20a /modules/session
parent86d5cc79d9d6750da8771fdb0c9ab22c19b8ad45 (diff)
downloadapache2-2a463b3cd73c32ee9dcd508248d0194923f435f4.tar.gz
Imported Upstream version 2.4.9upstream/2.4.9
Diffstat (limited to 'modules/session')
-rw-r--r--modules/session/mod_session.c36
-rw-r--r--modules/session/mod_session_crypto.c2
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);