]> git.saurik.com Git - redis.git/blobdiff - redis.c
Imporant bug leading to data corruption fixed (NOT affecting stable distribution...
[redis.git] / redis.c
diff --git a/redis.c b/redis.c
index c8cb67f0c5c4c28c3eba14885d53200fd6ea76e0..b934b40df50e35e61e63ab6614192390963faa37 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -1936,7 +1936,7 @@ static robj *tryObjectSharing(robj *o) {
  *
  * If so, the function returns REDIS_OK and *longval is set to the value
  * of the number. Otherwise REDIS_ERR is returned */
-static int isStringRepresentableAsLong(char *s, long *longval) {
+static int isStringRepresentableAsLong(sds s, long *longval) {
     char buf[32], *endptr;
     long value;
     int slen;
@@ -1947,7 +1947,7 @@ static int isStringRepresentableAsLong(char *s, long *longval) {
 
     /* If the number converted back into a string is not identical
      * then it's not possible to encode the string as integer */
-    if (strlen(buf) != (unsigned)slen || memcmp(buf,s,slen)) return REDIS_ERR;
+    if (sdslen(s) != (unsigned)slen || memcmp(buf,s,slen)) return REDIS_ERR;
     if (longval) *longval = value;
     return REDIS_OK;
 }