Files
Gyorgy Sarvari ec741a75f0 redis: upgrade 8.0.0 -> 8.0.6
License-Update:
- Upstream has removed incorrect gplv3 text from the license (because agplv3
  is the correct), which changed the checksum
- The recipe had incorrect license indication. Redis 8 is not BSD licensed,
  but depending on the user's choice, it's agplv3 or sspl (or custom redis
  license, which is not added to the list)

Changelogs:
8.0.6:
- Security fix: A user can manipulate data read by a connection by
  injecting \r\n sequences into a Redis error reply

8.0.5:
Bugfixes:
- HGETEX - potential crash when FIELDS is used and numfields is missing
- Potential crash on HyperLogLog with 2GB+ entries
- Cuckoo filter - Division by zero in Cuckoo filter insertion
- Cuckoo filter - Counter overflow
- Bloom filter - Arbitrary memory read/write with invalid filter
- Bloom filter - Out-of-bounds access with empty chain
- Bloom filter - Restore invalid filter [We thank AWS security for
  responsibly disclosing the security bug]
- Top-k - Out-of-bounds access

8.0.4:
Security fixes
- (CVE-2025-49844) A Lua script may lead to remote code execution
- (CVE-2025-46817) A Lua script may lead to integer overflow and potential RCE
- (CVE-2025-46818) A Lua script can be executed in the context of another user
- (CVE-2025-46819) LUA out-of-bound read

New Features
- VSIM: new EPSILON argument to specify maximum distance

Bug fixes
- Potential use-after-free after pubsub and Lua defrag
- Potential crash on Lua script defrag
- HINCRBYFLOAT removes field expiration on replica
- Prevent CLIENT UNBLOCK from unblocking CLIENT PAUSE
- Endless client blocking for blocking commands
- Vector sets - RDB format is not compatible with big endian machines
- EVAL crash when error table is empty
- Gracefully handle short read errors for hashes with TTL during full sync

8.0.3:
Security fixes
- (CVE-2025-32023) Fix out-of-bounds write in HyperLogLog commands
- (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error

New Features
- VSIM: Add new WITHATTRIBS to return the JSON attribute associated with an element

Bug fixes
- A short read may lead to an exit() on a replica
- db->expires is not defragmented

8.0.2:
Security fixes
- (CVE-2025-27151) redis-check-aof may lead to stack overflow and potential RCE

Bug fixes
- Cron-based timers run twice as fast when active defrag is enabled

Other general improvements
- LOLWUT for Redis 8

8.0.1:
Performance and resource utilization improvements
- Vector sets - faster VSIM FILTER parsing

Bug fixes
- Query Engine - revert default policy search-on-timeout to RETURN
- Query Engine - @__key on FT.AGGREGATE used as reserved field name preventing access to Redis keyspace
- Query Engine - crash when calling FT.CURSOR DEL while retrieving from the CURSOR

Notes
- Fixed wrong text in the license files

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2026-03-17 13:25:16 -07:00

72 lines
2.4 KiB
Bash

#!/bin/sh
#
### BEGIN INIT INFO
# Provides: redis-server
# Required-Start: $network
# Required-Stop: $network
# Default-Start: S 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis, a key-value store
# Description: Redis is an open source, advanced key-value store.
# http://redis.io
### END INIT INFO
test -f /usr/bin/redis-server || exit 0
ARGS="/etc/redis/redis.conf"
case "$1" in
start)
echo "Starting redis-server..."
start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
;;
stop)
echo "Stopping redis-server..."
start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
;;
restart)
echo "Stopping redis-server..."
start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
# Since busybox implementation ignores --retry arguments repeatedly check
# if the process is still running and try another signal after a timeout,
# efectively simulating a stop with --retry=TERM/5/KILL/5 schedule.
waitAfterTerm=5000000 # us / 5000 ms / 5 s
waitAfterKill=5000000 # us / 5000 ms / 5 s
waitStep=100000 # us / 100 ms / 0.1 s
waited=0
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
processOff=$?
while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do
usleep ${waitStep}
((waited+=${waitStep}))
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
processOff=$?
done
if [ $processOff -eq 0 ] ; then
start-stop-daemon --stop --signal KILL --exec /usr/bin/redis-server
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
processOff=$?
fi
waited=0
while [ $processOff -eq 0 ] && [ $waited -le $waitAfterKill ] ; do
usleep ${waitStep}
((waited+=${waitStep}))
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
processOff=$?
done
# Here $processOff will indicate if waiting and retrying according to
# the schedule ended in a successfull stop or not.
echo "Starting redis-server..."
start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
;;
*)
echo "Usage: /etc/init.d/redis-server {start|stop|restart}"
exit 1
;;
esac
exit 0