diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@users.noreply.github.com> | 2022-08-24 23:23:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-24 23:23:08 +0300 |
commit | 8d99181e81c43e7c18c8275e48fc9aef85f5bea5 (patch) | |
tree | 0f917fa152c4d806bda0d1e34ac5e2a1a03d7e5d | |
parent | eba1c6d29c167e2019389d2fcfc6a8826213d5fb (diff) | |
parent | a471c87a3b0fe3f82879b8df0fcfeb869d03e2a2 (diff) |
Merge pull request #2146 from phpredis/issue-2141
Issue #2141
-rw-r--r-- | redis_session.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/redis_session.c b/redis_session.c index 3e3e8816..b3b3d31f 100644 --- a/redis_session.c +++ b/redis_session.c @@ -380,7 +380,7 @@ static void lock_release(RedisSock *redis_sock, redis_session_lock_status *lock_ PS_OPEN_FUNC(redis) { php_url *url; - zval params, *context = NULL; + zval params, context, *zv; int i, j, path_len; redis_pool *pool = ecalloc(1, sizeof(*pool)); @@ -425,6 +425,7 @@ PS_OPEN_FUNC(redis) return FAILURE; } + ZVAL_NULL(&context); /* parse parameters */ if (url->query != NULL) { HashTable *ht; @@ -450,7 +451,9 @@ PS_OPEN_FUNC(redis) REDIS_CONF_STRING_STATIC(ht, "prefix", &prefix); REDIS_CONF_AUTH_STATIC(ht, "auth", &user, &pass); - context = REDIS_HASH_STR_FIND_TYPE_STATIC(ht, "stream", IS_ARRAY); + if ((zv = REDIS_HASH_STR_FIND_TYPE_STATIC(ht, "stream", IS_ARRAY)) != NULL) { + ZVAL_ZVAL(&context, zv, 1, 0); + } zval_dtor(¶ms); } @@ -492,9 +495,8 @@ PS_OPEN_FUNC(redis) persistent, persistent_id ? ZSTR_VAL(persistent_id) : NULL, retry_interval); - if (context != NULL) { - redis_sock_set_stream_context(redis_sock, context); - context = NULL; + if (Z_TYPE(context) == IS_ARRAY) { + redis_sock_set_stream_context(redis_sock, &context); } redis_pool_add(pool, redis_sock, weight, db); |