]> git.saurik.com Git - redis.git/commitdiff
fix for the LZF off-by-one bug added
authorantirez <antirez@gmail.com>
Tue, 28 Apr 2009 23:04:04 +0000 (01:04 +0200)
committerantirez <antirez@gmail.com>
Tue, 28 Apr 2009 23:04:04 +0000 (01:04 +0200)
TODO
redis.c

diff --git a/TODO b/TODO
index 272b77ca22789e873a98a287e55abcda29737f4d..86de2343a76c8453df625cd9823317ef4fc5328e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,5 +1,6 @@
 BEFORE REDIS 1.0.0-rc1
 
+- TTL command that returns -1 if a key is not volatile otherwise the time to live of a volatile key.
 - Remove max number of args limit
 - What happens if the saving child gets killed instead to end normally? Handle this.
 - Make sinterstore / unionstore / sdiffstore returning the cardinality of the resulting set.
diff --git a/redis.c b/redis.c
index 9550e290e41732f9005c6211f3ca2748a255b049..1237a048d25f92221ed7528475756ebe2c8cb39d 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -1704,7 +1704,7 @@ static int rdbSaveLzfStringObject(FILE *fp, robj *obj) {
     /* We require at least four bytes compression for this to be worth it */
     outlen = sdslen(obj->ptr)-4;
     if (outlen <= 0) return 0;
-    if ((out = zmalloc(outlen)) == NULL) return 0;
+    if ((out = zmalloc(outlen+1)) == NULL) return 0;
     comprlen = lzf_compress(obj->ptr, sdslen(obj->ptr), out, outlen);
     if (comprlen == 0) {
         zfree(out);
@@ -1741,7 +1741,7 @@ static int rdbSaveStringObject(FILE *fp, robj *obj) {
 
     /* Try LZF compression - under 20 bytes it's unable to compress even
      * aaaaaaaaaaaaaaaaaa so skip it */
-    if (len > 20) {
+    if (1 && len > 20) {
         int retval;
 
         retval = rdbSaveLzfStringObject(fp,obj);