- 07 Oct, 2016 6 commits
- 06 Oct, 2016 4 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
It was noted by @dvirsky that it is not possible to use string functions when writing the AOF file. This sometimes is critical since the command rewriting may need to be built in the context of the AOF callback, and without access to the context, and the limited types that the AOF production functions will accept, this can be an issue. Moreover there are other needs that we can't anticipate regarding the ability to use Redis Modules APIs using the context in order to build representations to emit AOF / RDB. Because of this a new API was added that allows the user to get a temporary context from the IO context. The context is auto released if obtained when the RDB / AOF callback returns. Calling multiple time the function to get the context, always returns the same one, since it is invalid to have more than a single context.
-
antirez authored
-
- 02 Oct, 2016 4 commits
- 26 Sep, 2016 3 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
This commit fixes a vunlerability reported by Cory Duplantis of Cisco Talos, see TALOS-2016-0206 for reference. CONFIG SET client-output-buffer-limit accepts as client class "master" which is actually only used to implement CLIENT KILL. The "master" class has ID 3. What happens is that the global structure: server.client_obuf_limits[class] Is accessed with class = 3. However it is a 3 elements array, so writing the 4th element means to write up to 24 bytes of memory *after* the end of the array, since the structure is defined as: typedef struct clientBufferLimitsConfig { unsigned long long hard_limit_bytes; unsigned long long soft_limit_bytes; time_t soft_limit_seconds; } clientBufferLimitsConfig; EVALUATION OF IMPACT: Checking what's past the boundaries of the array in the global 'server' structure, we find AOF state fields: clientBufferLimitsConfig client_obuf_limits[CLIENT_TYPE_OBUF_COUNT]; ...
-
- 21 Sep, 2016 2 commits
-
-
Salvatore Sanfilippo authored
added RM_CreateStringPrintf
-
Dvir Volk authored
-
- 20 Sep, 2016 1 commit
-
-
antirez authored
Recently we moved the "return ASAP" condition for the Delete() function from checking .size to checking .used, which is smarter, however while testing the first table alone always works to ensure the dict is totally emtpy, when we test the .size field, testing .used requires testing both T0 and T1, since a rehashing could be in progress.
-
- 19 Sep, 2016 5 commits
-
-
antirez authored
This is important both to reset the magic to 0, so that it will not match if the structure is not explicitly set, and to initialize other things we may add like counters and such.
-
antirez authored
-
antirez authored
-
antirez authored
The goal is to get copy-on-write amount of the child from the parent.
-
antirez authored
It was changed in Redis but not in redis-cli. Thanks to @oranagra for signaling.
-
- 16 Sep, 2016 7 commits
- 15 Sep, 2016 6 commits
-
-
antirez authored
The size of the node depends on the node level, however it is not stored into the node itself, is an implicit information, so we use zmalloc_size() in order to compute the sorted set size.
-
antirez authored
-
antirez authored
The new SAMPLES option is added, defaulting to 5, and with 0 being a special value to scan the whole set of elements. Fixes to the object size computation were made since the original PR assumed data structures still contaning robj structures, while now after the lazyfree changes, are all SDS strings.
-
antirez authored
-
antirez authored
-
antirez authored
-
- 14 Sep, 2016 2 commits