]> git.saurik.com Git - redis.git/blobdiff - redis.c
added overflow check in the double -> long long conversion trick to avoid integer...
[redis.git] / redis.c
diff --git a/redis.c b/redis.c
index 28f7a8b6a24ae2f535f67e472f2207c12f0cf22a..fc921aeb1eadf1ea306e053eae20256014b5a49a 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -3513,7 +3513,7 @@ static int rdbSaveDoubleValue(FILE *fp, double val) {
         len = 1;
         buf[0] = (val < 0) ? 255 : 254;
     } else {
-        if (val == ((long long)val))
+        if (val > LLONG_MAX && val < LLONG_MIN && val == ((long long)val))
             ll2string((char*)buf+1,sizeof(buf),(long long)val);
         else
             snprintf((char*)buf+1,sizeof(buf)-1,"%.17g",val);