]> git.saurik.com Git - redis.git/blobdiff - src/db.c
Make sure that SELECT argument is an integer or return an error.
[redis.git] / src / db.c
index 6447838caa7e19f98378eeeed940c64de222001d..5f07e2b6d2b4f62feaf05ff65c85d86b8d946680 100644 (file)
--- a/src/db.c
+++ b/src/db.c
@@ -228,7 +228,11 @@ void existsCommand(redisClient *c) {
 }
 
 void selectCommand(redisClient *c) {
-    int id = atoi(c->argv[1]->ptr);
+    long id;
+
+    if (getLongFromObjectOrReply(c, c->argv[1], &id,
+        "invalid DB index") != REDIS_OK)
+        return;
 
     if (server.cluster_enabled && id != 0) {
         addReplyError(c,"SELECT is not allowed in cluster mode");