diff options
author | Oran Agra <oran@redislabs.com> | 2017-12-21 11:10:48 +0200 |
---|---|---|
committer | Oran Agra <oran@redislabs.com> | 2017-12-29 12:24:19 +0200 |
commit | 60a4f12f8b998c44dfff0e88202b01598287390d (patch) | |
tree | 8da45dd584c02f85d97119f163802686444256d8 /src/rdb.h | |
parent | 0b561883b48db76a78497b1bebfd9367c80e2d96 (diff) | |
download | redis-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.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); |