summaryrefslogtreecommitdiff
path: root/src/rdb.h
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2017-12-21 11:10:48 +0200
committerOran Agra <oran@redislabs.com>2017-12-29 12:24:19 +0200
commit60a4f12f8b998c44dfff0e88202b01598287390d (patch)
tree8da45dd584c02f85d97119f163802686444256d8 /src/rdb.h
parent0b561883b48db76a78497b1bebfd9367c80e2d96 (diff)
downloadredis-60a4f12f8b998c44dfff0e88202b01598287390d.tar.gz
fix processing of large bulks (above 2GB)
- protocol parsing (processMultibulkBuffer) was limitted to 32big positions in the buffer readQueryFromClient potential overflow - rioWriteBulkCount used int, although rioWriteBulkString gave it size_t - several places in sds.c that used int for string length or index. - bugfix in RM_SaveAuxField (return was 1 or -1 and not length) - RM_SaveStringBuffer was limitted to 32bit length
Diffstat (limited to 'src/rdb.h')
-rw-r--r--src/rdb.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rdb.h b/src/rdb.h
index ecb066fb0..2456cfb58 100644
--- a/src/rdb.h
+++ b/src/rdb.h
@@ -141,7 +141,7 @@ robj *rdbLoadObject(int type, rio *rdb);
void backgroundSaveDoneHandler(int exitcode, int bysignal);
int rdbSaveKeyValuePair(rio *rdb, robj *key, robj *val, long long expiretime, long long now);
robj *rdbLoadStringObject(rio *rdb);
-int rdbSaveStringObject(rio *rdb, robj *obj);
+ssize_t rdbSaveStringObject(rio *rdb, robj *obj);
ssize_t rdbSaveRawString(rio *rdb, unsigned char *s, size_t len);
void *rdbGenericLoadStringObject(rio *rdb, int flags, size_t *lenptr);
int rdbSaveBinaryDoubleValue(rio *rdb, double val);