Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2022-04-14 21:13:54 +0300
committerPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2022-04-14 21:13:54 +0300
commit55bf0202dd674c70e147fc50e72298719e23391e (patch)
treee6bc5f8be4ff8128a3ffec70ba7902e232dbd762
parentee210f86e58894e24128b2540690c7838d379f47 (diff)
Fix segfault
-rw-r--r--library.c4
-rw-r--r--redis.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/library.c b/library.c
index 6537bc8d..dc2f889c 100644
--- a/library.c
+++ b/library.c
@@ -2581,7 +2581,9 @@ redis_sock_set_stream_context(RedisSock *redis_sock, zval *options)
redis_sock->stream_ctx = php_stream_context_alloc();
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(options), zkey, z_ele) {
- php_stream_context_set_option(redis_sock->stream_ctx, "ssl", ZSTR_VAL(zkey), z_ele);
+ if (zkey != NULL) {
+ php_stream_context_set_option(redis_sock->stream_ctx, "ssl", ZSTR_VAL(zkey), z_ele);
+ }
} ZEND_HASH_FOREACH_END();
return SUCCESS;
diff --git a/redis.c b/redis.c
index 49b16a91..ac7afd80 100644
--- a/redis.c
+++ b/redis.c
@@ -606,6 +606,9 @@ PHP_METHOD(Redis, __construct)
redis->sock = redis_sock_create("127.0.0.1", 0, 6379, 0, 0, 0, NULL, 0);
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(opts), zkey, val) {
+ if (zkey == NULL) {
+ continue;
+ }
ZVAL_DEREF(val);
if (zend_string_equals_literal_ci(zkey, "host")) {
if (Z_TYPE_P(val) != IS_STRING) {