]> git.saurik.com Git - redis.git/commitdiff
zero length bulk data reading fixed in loadAppendOnlyFile()
authorantirez <antirez@gmail.com>
Thu, 26 Nov 2009 18:18:52 +0000 (19:18 +0100)
committerantirez <antirez@gmail.com>
Thu, 26 Nov 2009 18:18:52 +0000 (19:18 +0100)
redis.c

diff --git a/redis.c b/redis.c
index 3198b1b7d39d3b0a9f29ab6c700db3ce88241217..bcde90c39faa89aa22ed44074c327ad6bc6a5c7e 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -5740,7 +5740,7 @@ int loadAppendOnlyFile(char *filename) {
             if (buf[0] != '$') goto fmterr;
             len = strtol(buf+1,NULL,10);
             argsds = sdsnewlen(NULL,len);
             if (buf[0] != '$') goto fmterr;
             len = strtol(buf+1,NULL,10);
             argsds = sdsnewlen(NULL,len);
-            if (fread(argsds,len,1,fp) == 0) goto fmterr;
+            if (len && fread(argsds,len,1,fp) == 0) goto fmterr;
             argv[j] = createObject(REDIS_STRING,argsds);
             if (fread(buf,2,1,fp) == 0) goto fmterr; /* discard CRLF */
         }
             argv[j] = createObject(REDIS_STRING,argsds);
             if (fread(buf,2,1,fp) == 0) goto fmterr; /* discard CRLF */
         }