Compare commits

..
Author SHA1 Message Date
Malavan Sotheeswaran 0679aa888b keys after brpop causes crash due to timeout not being reset 2023-05-26 14:51:46 -07:00
Malavan Sotheeswaran ef8b1bf373 add fPreSnapshot to evictionTimeProc 2023-05-25 00:03:39 -07:00
Attila Nagy f629a76a2e Make it compile on FreeBSD (#650) 2023-05-08 15:59:36 -04:00
Malavan Sotheeswaran e4dacb467f add config to disable storage key cache 2023-04-25 11:15:57 -07:00
Malavan Sotheeswaran a8c0f9b1c4 limit number of random elements returned based on config, exit loop early if client is being closed 2023-04-18 17:08:27 -07:00
Malavan Sotheeswaran 36d515ef39 ptrFromObj to szFromObj 2023-04-18 17:08:27 -07:00
Malavan Sotheeswaran 525c97d6cd ->ptr to ptrFromObj 2023-04-18 17:08:27 -07:00
4c200e0985 fix hincrbyfloat not to create a key if the new value is invalid (#11149)
Check the validity of the value before performing the create operation,
prevents new data from being generated even if the request fails to execute.

Co-authored-by: Oran Agra <oran@redislabs.com>
Co-authored-by: chendianqiang <chendianqiang@meituan.com>
Co-authored-by: Binbin <binloveplay1314@qq.com>
2023-04-18 17:08:27 -07:00
Oran Agra d4c0a970e7 Integer Overflow in RAND commands can lead to assertion (CVE-2023-25155) (#11857)
Issue happens when passing a negative long value that greater than
the max positive value that the long can store.
2023-04-18 17:08:27 -07:00
7 changed files with 23 additions and 4 deletions

No files matched your search

+9 -1
View File
@@ -145,7 +145,9 @@ FINAL_LDFLAGS=$(LDFLAGS) $(KEYDB_LDFLAGS) $(DEBUG)
FINAL_LIBS+=-lm -lz -lcrypto -lbz2 -lzstd -llz4 -lsnappy
ifneq ($(uname_S),Darwin)
ifneq ($(uname_S),FreeBSD)
FINAL_LIBS+=-latomic
endif
endif
# Linux ARM32 needs -latomic at linking time
ifneq (,$(findstring armv,$(uname_M)))
@@ -211,7 +213,13 @@ ifeq ($(uname_S),NetBSD)
else
ifeq ($(uname_S),FreeBSD)
# FreeBSD
FINAL_LIBS+= -lpthread -lexecinfo
FINAL_LIBS+= -lpthread -luuid -lexecinfo
FINAL_CFLAGS+= -I/usr/local/include
FINAL_CXXFLAGS+= -I/usr/local/include
FINAL_LDFLAGS+= -L/usr/local/lib
ifeq ($(USE_BACKTRACE),yes)
FINAL_CFLAGS+= -DUSE_BACKTRACE
endif
else
ifeq ($(uname_S),DragonFly)
# DragonFly
+1 -1
View File
@@ -21,7 +21,7 @@ dictType dbStorageCacheType = {
StorageCache::StorageCache(IStorage *storage, bool fCache)
: m_spstorage(storage)
{
if (fCache)
if (!g_pserver->flash_disable_key_cache && fCache)
m_pdict = dictCreate(&dbStorageCacheType, nullptr);
}
+1
View File
@@ -732,6 +732,7 @@ void unblockClientWaitingData(client *c) {
c->bpop.xread_group = NULL;
c->bpop.xread_consumer = NULL;
}
c->bpop.timeout = 0;
}
static int getBlockedTypeByType(int type) {
+1
View File
@@ -2940,6 +2940,7 @@ standardConfig configs[] = {
createBoolConfig("allow-write-during-load", NULL, MODIFIABLE_CONFIG, g_pserver->fWriteDuringActiveLoad, 0, NULL, NULL),
createBoolConfig("force-backlog-disk-reserve", NULL, MODIFIABLE_CONFIG, cserver.force_backlog_disk, 0, NULL, NULL),
createBoolConfig("soft-shutdown", NULL, MODIFIABLE_CONFIG, g_pserver->config_soft_shutdown, 0, NULL, NULL),
createBoolConfig("flash-disable-key-cache", NULL, MODIFIABLE_CONFIG, g_pserver->flash_disable_key_cache, 0, NULL, NULL),
createSizeTConfig("semi-ordered-set-bucket-size", NULL, MODIFIABLE_CONFIG, 0, 1024, g_semiOrderedSetTargetBucketSize, 0, INTEGER_CONFIG, NULL, NULL),
#ifdef USE_OPENSSL
+2 -2
View File
@@ -552,7 +552,7 @@ static int evictionTimeProc(
UNUSED(clientData);
serverAssert(GlobalLocksAcquired());
if (performEvictions(false) == EVICT_RUNNING) return 0; /* keep evicting */
if (performEvictions((bool)clientData) == EVICT_RUNNING) return 0; /* keep evicting */
/* For EVICT_OK - things are good, no need to keep evicting.
* For EVICT_FAIL - there is nothing left to evict. */
@@ -838,7 +838,7 @@ int performEvictions(bool fPreSnapshot) {
if (!isEvictionProcRunning && serverTL->el != nullptr) {
isEvictionProcRunning = 1;
aeCreateTimeEvent(serverTL->el, 0,
evictionTimeProc, NULL, NULL);
evictionTimeProc, (void*)fPreSnapshot, NULL);
}
break;
}
+2
View File
@@ -2734,6 +2734,8 @@ struct redisServer {
int config_soft_shutdown = false;
bool soft_shutdown = false;
int flash_disable_key_cache = false;
/* Lock Contention Ring Buffer */
static const size_t s_lockContentionSamples = 64;
uint16_t rglockSamples[s_lockContentionSamples];
+7
View File
@@ -1069,6 +1069,13 @@ start_server {
r ping
} {PONG}
test "Regression for bug 659 - chaining BRPOP with async blocking cmds" {
r flushall
r brpop foo 1
r keys *
r ping
} {PONG}
test "client unblock tests" {
r del l
set rd [redis_deferring_client]