mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-12 18:59:50 +03:00
community/redict: upgrade to 7.3.4
https://codeberg.org/redict/redict/releases/tag/7.3.4
This commit is contained in:
parent
6b4b9e6491
commit
f39e9cddeb
2 changed files with 3 additions and 118 deletions
|
@ -3,8 +3,8 @@
|
|||
# Contributor: TBK <alpine@jjtc.eu>
|
||||
# Maintainer: fossdd <fossdd@pwned.life>
|
||||
pkgname=redict
|
||||
pkgver=7.3.3
|
||||
pkgrel=2
|
||||
pkgver=7.3.4
|
||||
pkgrel=0
|
||||
pkgdesc="A distributed key/value database"
|
||||
url="https://redict.io/"
|
||||
arch="all"
|
||||
|
@ -35,7 +35,6 @@ source="redict-$pkgver.tar.gz::https://codeberg.org/redict/redict/archive/$pkgve
|
|||
$pkgname.logrotate
|
||||
CVE-2025-27151.patch
|
||||
CVE-2025-32023.patch
|
||||
CVE-2025-48367.patch
|
||||
"
|
||||
options="!check" # very flaky
|
||||
|
||||
|
@ -110,7 +109,7 @@ compat() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
7fbdee54f26d59d74bab2b9fa619cb7c0135aebb38ff891423f4963ca593e20018f9f789288eb3ebc769f02a05da3fe35033f75d42902bb99421cae5689f5e88 redict-7.3.3.tar.gz
|
||||
6f3bcdc965d6c761874d32bb107854d7375c5bccbee5a71f438b4ec176136b0f55b864bd9448898f92dc0c7e5b6e188139b8456ee88c2293e600fa854f36b621 redict-7.3.4.tar.gz
|
||||
96740880cd0caac2cecb11066a555055e7c3f10feb312b2d4c7a206fb92c1003415cf7ab81bec4ac96f7631724d9097b1ca130621c8b564a7987dcd75d2f6e25 redict.conf.patch
|
||||
a3cec12566097fe78a31d09db77ca956ba52ee1fbb8ac4f5ffc49d0299e29f94ef55830f7760324a875bd47391eee116e0c4efb4bef00d6045bf98b81f392dfc sentinel.conf.patch
|
||||
555edff7dd7768c9579a101df86e91cc14cb9941365f051e0e993f1c341cd2b46fcfab6f4a6fd4c1d589242363e323734b453652d687d2d46cb651d84d42caee redict.initd
|
||||
|
@ -119,5 +118,4 @@ a3cec12566097fe78a31d09db77ca956ba52ee1fbb8ac4f5ffc49d0299e29f94ef55830f7760324a
|
|||
68e0b0c4c8def5d42149b895ac681d91b8c691a5fd90bce64e6bf6c7780f33c6ac02a923642ebdc85f6bb41d8039cc38b7d3be49e5e9f86f097e3d1f6d41ecd4 redict.logrotate
|
||||
4009aa507fc0ffc3e8ad93e62447a8039c0a68abff8cfc612543238eeca1a78fa0edad5ee8e27646f36edbd5a68fae59bb320eb4f872ebe4031b8d855af59a63 CVE-2025-27151.patch
|
||||
2998492265050707ad0a2d82b3005ad447a845f0986cd1c0e0597eb57befd18a5fe908cfd15125fa053c56059e1ad9ea26ef0af22809d530a3005d0bf9c51ab3 CVE-2025-32023.patch
|
||||
96b8c421df39f0acf01008a65088d96e961bc5231acfb3b16c987d5b46368a398722563c81123eabe7a72406a46c131f89a361472959c6f232a646b776389d1d CVE-2025-48367.patch
|
||||
"
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
Patch-Source: https://github.com/redis/redis/commit/bde62951accfc4bb0a516276fd0b4b307e140ce2
|
||||
---
|
||||
From bde62951accfc4bb0a516276fd0b4b307e140ce2 Mon Sep 17 00:00:00 2001
|
||||
From: Ozan Tezcan <ozantezcan@gmail.com>
|
||||
Date: Wed, 14 May 2025 11:02:30 +0300
|
||||
Subject: [PATCH] Retry accept() even if accepted connection reports an error
|
||||
(CVE-2025-48367)
|
||||
|
||||
In case of accept4() returns an error, we should check errno value and decide if we should retry accept4() without waiting next event loop iteration.
|
||||
---
|
||||
src/anet.c | 24 ++++++++++++++++++++++++
|
||||
src/anet.h | 1 +
|
||||
src/cluster_legacy.c | 2 ++
|
||||
src/socket.c | 2 ++
|
||||
src/tls.c | 2 ++
|
||||
src/unix.c | 2 ++
|
||||
6 files changed, 33 insertions(+)
|
||||
|
||||
diff --git a/src/anet.c b/src/anet.c
|
||||
index ad4ac49d89a..d79434cef03 100644
|
||||
--- a/src/anet.c
|
||||
+++ b/src/anet.c
|
||||
@@ -787,3 +787,27 @@ int anetIsFifo(char *filepath) {
|
||||
if (stat(filepath, &sb) == -1) return 0;
|
||||
return S_ISFIFO(sb.st_mode);
|
||||
}
|
||||
+
|
||||
+/* This function must be called after accept4() fails. It returns 1 if 'err'
|
||||
+ * indicates accepted connection faced an error, and it's okay to continue
|
||||
+ * accepting next connection by calling accept4() again. Other errors either
|
||||
+ * indicate programming errors, e.g. calling accept() on a closed fd or indicate
|
||||
+ * a resource limit has been reached, e.g. -EMFILE, open fd limit has been
|
||||
+ * reached. In the latter case, caller might wait until resources are available.
|
||||
+ * See accept4() documentation for details. */
|
||||
+int anetAcceptFailureNeedsRetry(int err) {
|
||||
+ if (err == ECONNABORTED)
|
||||
+ return 1;
|
||||
+
|
||||
+#if defined(__linux__)
|
||||
+ /* For details, see 'Error Handling' section on
|
||||
+ * https://man7.org/linux/man-pages/man2/accept.2.html */
|
||||
+ if (err == ENETDOWN || err == EPROTO || err == ENOPROTOOPT ||
|
||||
+ err == EHOSTDOWN || err == ENONET || err == EHOSTUNREACH ||
|
||||
+ err == EOPNOTSUPP || err == ENETUNREACH)
|
||||
+ {
|
||||
+ return 1;
|
||||
+ }
|
||||
+#endif
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/src/anet.h b/src/anet.h
|
||||
index 211421940dd..1d3aec9cdf5 100644
|
||||
--- a/src/anet.h
|
||||
+++ b/src/anet.h
|
||||
@@ -53,5 +53,6 @@ int anetPipe(int fds[2], int read_flags, int write_flags);
|
||||
int anetSetSockMarkId(char *err, int fd, uint32_t id);
|
||||
int anetGetError(int fd);
|
||||
int anetIsFifo(char *filepath);
|
||||
+int anetAcceptFailureNeedsRetry(int err);
|
||||
|
||||
#endif
|
||||
diff --git a/src/cluster_legacy.c b/src/cluster_legacy.c
|
||||
index 88dc9969190..6f1635e9e5d 100644
|
||||
--- a/src/cluster_legacy.c
|
||||
+++ b/src/cluster_legacy.c
|
||||
@@ -1253,6 +1253,8 @@ void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int mask) {
|
||||
while(max--) {
|
||||
cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport);
|
||||
if (cfd == ANET_ERR) {
|
||||
+ if (anetAcceptFailureNeedsRetry(errno))
|
||||
+ continue;
|
||||
if (errno != EWOULDBLOCK)
|
||||
serverLog(LL_VERBOSE,
|
||||
"Error accepting cluster node: %s", server.neterr);
|
||||
diff --git a/src/socket.c b/src/socket.c
|
||||
index 241a541080d..226b414f85e 100644
|
||||
--- a/src/socket.c
|
||||
+++ b/src/socket.c
|
||||
@@ -308,6 +308,8 @@ static void connSocketAcceptHandler(aeEventLoop *el, int fd, void *privdata, int
|
||||
while(max--) {
|
||||
cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport);
|
||||
if (cfd == ANET_ERR) {
|
||||
+ if (anetAcceptFailureNeedsRetry(errno))
|
||||
+ continue;
|
||||
if (errno != EWOULDBLOCK)
|
||||
serverLog(LL_WARNING,
|
||||
"Accepting client connection: %s", server.neterr);
|
||||
diff --git a/src/tls.c b/src/tls.c
|
||||
index 65526c04f7d..a0733a4b636 100644
|
||||
--- a/src/tls.c
|
||||
+++ b/src/tls.c
|
||||
@@ -771,6 +771,8 @@ static void tlsAcceptHandler(aeEventLoop *el, int fd, void *privdata, int mask)
|
||||
while(max--) {
|
||||
cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport);
|
||||
if (cfd == ANET_ERR) {
|
||||
+ if (anetAcceptFailureNeedsRetry(errno))
|
||||
+ continue;
|
||||
if (errno != EWOULDBLOCK)
|
||||
serverLog(LL_WARNING,
|
||||
"Accepting client connection: %s", server.neterr);
|
||||
diff --git a/src/unix.c b/src/unix.c
|
||||
index b61cb6d4959..e26f0d27ad1 100644
|
||||
--- a/src/unix.c
|
||||
+++ b/src/unix.c
|
||||
@@ -102,6 +102,8 @@ static void connUnixAcceptHandler(aeEventLoop *el, int fd, void *privdata, int m
|
||||
while(max--) {
|
||||
cfd = anetUnixAccept(server.neterr, fd);
|
||||
if (cfd == ANET_ERR) {
|
||||
+ if (anetAcceptFailureNeedsRetry(errno))
|
||||
+ continue;
|
||||
if (errno != EWOULDBLOCK)
|
||||
serverLog(LL_WARNING,
|
||||
"Accepting client connection: %s", server.neterr);
|
Loading…
Add table
Add a link
Reference in a new issue