diff options
-rw-r--r-- | php_redis.h | 2 | ||||
-rw-r--r-- | redis.c | 3 | ||||
-rw-r--r-- | redis_session.c | 6 |
3 files changed, 5 insertions, 6 deletions
diff --git a/php_redis.h b/php_redis.h index 930346ad..9d47e058 100644 --- a/php_redis.h +++ b/php_redis.h @@ -262,7 +262,7 @@ PHP_REDIS_API int redis_sock_read_multibulk_multi_reply_loop( ZEND_BEGIN_MODULE_GLOBALS(redis) int lock_release_lua_script_uploaded; - char lock_release_lua_script_hash[41]; + char *lock_release_lua_script_hash; ZEND_END_MODULE_GLOBALS(redis) ZEND_EXTERN_MODULE_GLOBALS(redis); @@ -462,7 +462,7 @@ static PHP_GINIT_FUNCTION(redis) { redis_globals->lock_release_lua_script_uploaded = 0; - memset(redis_globals->lock_release_lua_script_hash, 0, 41); + redis_globals->lock_release_lua_script_hash = NULL; } zend_module_entry redis_module_entry = { @@ -816,6 +816,7 @@ PHP_MINIT_FUNCTION(redis) */ PHP_MSHUTDOWN_FUNCTION(redis) { + efree(REDIS_G(lock_release_lua_script_hash)); return SUCCESS; } diff --git a/redis_session.c b/redis_session.c index db584d25..7d9e566f 100644 --- a/redis_session.c +++ b/redis_session.c @@ -317,7 +317,7 @@ void lock_release(RedisSock *redis_sock, redis_session_lock_status *lock_status int upload_lock_release_script(RedisSock *redis_sock TSRMLS_DC) { - if (REDIS_G(lock_release_lua_script_uploaded)) return; + if (REDIS_G(lock_release_lua_script_uploaded)) return 1; char *cmd, *response, *release_script; int response_len, cmd_len; @@ -337,9 +337,7 @@ int upload_lock_release_script(RedisSock *redis_sock TSRMLS_DC) } if (response != NULL) { - memset(REDIS_G(lock_release_lua_script_hash), 0, 41); - strncpy(REDIS_G(lock_release_lua_script_hash), response, strlen(response)); - + REDIS_G(lock_release_lua_script_hash) = estrdup(response); REDIS_G(lock_release_lua_script_uploaded) = 1; upload_result = 1; efree(response); |