@@ -4358,21 +4358,23 @@ redis_read_variant_reply_strings(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_
4358
4358
return variant_reply_generic (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , 1 , 0 , z_tab , ctx );
4359
4359
}
4360
4360
4361
+ /* The user may wish to send us something like [NULL, 'password'] or
4362
+ * [false, 'password'] so don't convert NULL or FALSE into "". */
4363
+ static int redisTrySetAuthArg (zend_string * * dst , zval * zsrc ) {
4364
+ if (Z_TYPE_P (zsrc ) == IS_NULL || Z_TYPE_P (zsrc ) == IS_FALSE )
4365
+ return FAILURE ;
4366
+
4367
+ * dst = zval_get_string (zsrc );
4368
+
4369
+ return SUCCESS ;
4370
+ }
4371
+
4361
4372
PHP_REDIS_API
4362
4373
int redis_extract_auth_info (zval * ztest , zend_string * * user , zend_string * * pass ) {
4363
4374
zval * zv ;
4364
4375
HashTable * ht ;
4365
4376
int num ;
4366
4377
4367
- /* The user may wish to send us something like [NULL, 'password'] or
4368
- * [false, 'password'] so don't convert NULL or FALSE into "". */
4369
- #define TRY_SET_AUTH_ARG (zv , ppzstr ) \
4370
- do { \
4371
- if (Z_TYPE_P(zv) != IS_NULL && Z_TYPE_P(zv) != IS_FALSE) { \
4372
- *(ppzstr) = zval_get_string(zv); \
4373
- } \
4374
- } while (0)
4375
-
4376
4378
/* Null out user and password */
4377
4379
* user = * pass = NULL ;
4378
4380
@@ -4382,8 +4384,7 @@ int redis_extract_auth_info(zval *ztest, zend_string **user, zend_string **pass)
4382
4384
4383
4385
/* Handle a non-array first */
4384
4386
if (Z_TYPE_P (ztest ) != IS_ARRAY ) {
4385
- TRY_SET_AUTH_ARG (ztest , pass );
4386
- return SUCCESS ;
4387
+ return redisTrySetAuthArg (pass , ztest );
4387
4388
}
4388
4389
4389
4390
/* Handle the array case */
@@ -4400,18 +4401,18 @@ int redis_extract_auth_info(zval *ztest, zend_string **user, zend_string **pass)
4400
4401
if ((zv = REDIS_HASH_STR_FIND_STATIC (ht , "user" )) ||
4401
4402
(zv = zend_hash_index_find (ht , 0 )))
4402
4403
{
4403
- TRY_SET_AUTH_ARG ( zv , user );
4404
+ redisTrySetAuthArg ( user , zv );
4404
4405
}
4405
4406
4406
4407
if ((zv = REDIS_HASH_STR_FIND_STATIC (ht , "pass" )) ||
4407
4408
(zv = zend_hash_index_find (ht , 1 )))
4408
4409
{
4409
- TRY_SET_AUTH_ARG ( zv , pass );
4410
+ redisTrySetAuthArg ( pass , zv );
4410
4411
}
4411
4412
} else if ((zv = REDIS_HASH_STR_FIND_STATIC (ht , "pass" )) ||
4412
4413
(zv = zend_hash_index_find (ht , 0 )))
4413
4414
{
4414
- TRY_SET_AUTH_ARG ( zv , pass );
4415
+ redisTrySetAuthArg ( pass , zv );
4415
4416
}
4416
4417
4417
4418
/* If we at least have a password, we're good */
0 commit comments