From 6485f293827bed97a791ff6c88a8f3d92b00b1c5 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Tue, 11 May 2010 22:46:24 +0200 Subject: [PATCH] fix to return error when calling INCR on a non-string type --- redis.c | 4 ++-- test-redis.tcl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/redis.c b/redis.c index 4f3773d06..9d8f5a904 100644 --- a/redis.c +++ b/redis.c @@ -4231,8 +4231,8 @@ static void incrDecrCommand(redisClient *c, long long incr) { robj *o; o = lookupKeyWrite(c->db,c->argv[1]); - - if (getLongLongFromObjectOrReply(c, o, &value, NULL) != REDIS_OK) return; + if (o != NULL && checkType(c,o,REDIS_STRING)) return; + if (getLongLongFromObjectOrReply(c,o,&value,NULL) != REDIS_OK) return; value += incr; o = createObject(REDIS_STRING,sdscatprintf(sdsempty(),"%lld",value)); diff --git a/test-redis.tcl b/test-redis.tcl index d4a9ecdb0..a306ea6a8 100644 --- a/test-redis.tcl +++ b/test-redis.tcl @@ -373,7 +373,7 @@ proc main {} { test {INCR fails against a key holding a list} { $r rpush mylist 1 - catch {$r incr novar} err + catch {$r incr mylist} err $r rpop mylist format $err } {ERR*} -- GitLab