@@ -3001,22 +3001,27 @@ PHP_METHOD(Redis, sortDescAlpha)
3001
3001
PHPAPI void generic_expire_cmd (INTERNAL_FUNCTION_PARAMETERS , char * keyword , int keyword_len ) {
3002
3002
zval * object ;
3003
3003
RedisSock * redis_sock ;
3004
- char * key = NULL , * cmd ;
3005
- int key_len , cmd_len , key_free ;
3006
- long t ;
3004
+ char * key = NULL , * cmd , * t ;
3005
+ int key_len , cmd_len , key_free , t_len ;
3006
+ int i ;
3007
3007
3008
- if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Osl " ,
3008
+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Oss " ,
3009
3009
& object , redis_ce , & key , & key_len ,
3010
- & t ) == FAILURE ) {
3010
+ & t , & t_len ) == FAILURE ) {
3011
3011
RETURN_FALSE ;
3012
3012
}
3013
3013
3014
3014
if (redis_sock_get (object , & redis_sock TSRMLS_CC , 0 ) < 0 ) {
3015
3015
RETURN_FALSE ;
3016
3016
}
3017
3017
3018
+ /* check that we have a number */
3019
+ for (i = 0 ; i < t_len ; ++ i )
3020
+ if (t [i ] < '0' || t [i ] > '9' )
3021
+ RETURN_FALSE ;
3022
+
3018
3023
key_free = redis_key_prefix (redis_sock , & key , & key_len TSRMLS_CC );
3019
- cmd_len = redis_cmd_format_static (& cmd , keyword , "sl " , key , key_len , t );
3024
+ cmd_len = redis_cmd_format_static (& cmd , keyword , "ss " , key , key_len , t , t_len );
3020
3025
if (key_free ) efree (key );
3021
3026
3022
3027
REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
@@ -3278,10 +3283,17 @@ PHPAPI void generic_ttl(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
3278
3283
if (key_free ) efree (key );
3279
3284
3280
3285
REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
3286
+ #ifdef PHP64
3281
3287
IF_ATOMIC () {
3282
3288
redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
3283
3289
}
3284
3290
REDIS_PROCESS_RESPONSE (redis_long_response );
3291
+ #else
3292
+ IF_ATOMIC () {
3293
+ redis_bulk_double_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
3294
+ }
3295
+ REDIS_PROCESS_RESPONSE (redis_bulk_double_response );
3296
+ #endif
3285
3297
}
3286
3298
3287
3299
/* {{{ proto long Redis::ttl(string key)
0 commit comments