diff options
author | Marius Meissner <marius.meissner@sixt.com> | 2018-03-05 17:06:06 +0300 |
---|---|---|
committer | Marius Meissner <marius.meissner@sixt.com> | 2018-03-05 17:06:06 +0300 |
commit | 0a799af914cc1db953f5a56d66f9b788285b01c5 (patch) | |
tree | 3d2080bc079d690ac5a8b62a61491423ff860fcb /redis_session.c | |
parent | 92d90950b6393e710534acb6ced2b0b1fab04c8b (diff) |
PR-1312: Only copy sesseion key if it changed
Diffstat (limited to 'redis_session.c')
-rw-r--r-- | redis_session.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/redis_session.c b/redis_session.c index 053888bf..41177e73 100644 --- a/redis_session.c +++ b/redis_session.c @@ -738,12 +738,10 @@ PS_WRITE_FUNC(redis) session = redis_session_key(rpm, key, strlen(key), &session_len); /* We need to check for PHP5 if the session key changes (a bug with session_regenerate_id() is causing a missing PS_CREATE_SID call)*/ - char *session_key_nt = estrndup(session, session_len); - - int session_key_changed = strcmp(pool->lock_status->session_key, session_key_nt) != 0; + int session_key_changed = strlen(pool->lock_status->session_key) != session_len || strncmp(pool->lock_status->session_key, session, session_len) != 0; if (session_key_changed) { efree(pool->lock_status->session_key); - pool->lock_status->session_key = session_key_nt; + pool->lock_status->session_key = estrndup(session, session_len); } if (session_key_changed && lock_acquire(redis_sock, pool->lock_status TSRMLS_CC) != SUCCESS) { |