Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
别团等shy哥发育
redis
提交
cffe37fd
R
redis
项目概览
别团等shy哥发育
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
cffe37fd
编写于
1月 21, 2016
作者:
E
Enrico Giordani
浏览文件
操作
浏览文件
下载
差异文件
Merged tag 2.8.24 from antirez/2.8
上级
a3cfbea3
32535ff5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
5 deletion
+34
-5
00-RELEASENOTES
00-RELEASENOTES
+17
-0
deps/lua/src/lua_struct.c
deps/lua/src/lua_struct.c
+6
-4
src/debug.c
src/debug.c
+4
-0
src/redis.c
src/redis.c
+6
-0
src/version.h
src/version.h
+1
-1
未找到文件。
00-RELEASENOTES
浏览文件 @
cffe37fd
...
@@ -14,6 +14,23 @@ HIGH: There is a critical bug that may affect a subset of users. Upgrade!
...
@@ -14,6 +14,23 @@ HIGH: There is a critical bug that may affect a subset of users. Upgrade!
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--[ Redis 2.8.24 ] Release date: 18 Dec 2015
Upgrade urgency: MODERATE. We fixed a crash that happens very rarely, so
updating does not hurt, but most users are unlikely to
experience this condition because it requires some odd
timing.
* [FIX] lua_struct.c/getnum security issue fixed. (Luca Bruno discovered it,
patched by Sun He and Chris Lamb)
* [FIX] Fix a race condition in processCommand() because of interactions
with freeMemoryIfNeeded(). Details in issue #2948 and especially
in the commit message d999f5a. (Race found analytically by
Oran Agra, patch by Salvatore Sanfilippo)
* [NEW] Log offending memory access address on SIGSEGV/SIGBUS (Salvatore
Sanfilippo)
--[ Redis 2.8.23 ] Release date: 15 Oct 2015
--[ Redis 2.8.23 ] Release date: 15 Oct 2015
Upgrade urgency: MODERATE, the most important thing is a fix in the replication
Upgrade urgency: MODERATE, the most important thing is a fix in the replication
...
...
deps/lua/src/lua_struct.c
浏览文件 @
cffe37fd
...
@@ -89,12 +89,14 @@ typedef struct Header {
...
@@ -89,12 +89,14 @@ typedef struct Header {
}
Header
;
}
Header
;
static
int
getnum
(
const
char
**
fmt
,
int
df
)
{
static
int
getnum
(
lua_State
*
L
,
const
char
**
fmt
,
int
df
)
{
if
(
!
isdigit
(
**
fmt
))
/* no number? */
if
(
!
isdigit
(
**
fmt
))
/* no number? */
return
df
;
/* return default value */
return
df
;
/* return default value */
else
{
else
{
int
a
=
0
;
int
a
=
0
;
do
{
do
{
if
(
a
>
(
INT_MAX
/
10
)
||
a
*
10
>
(
INT_MAX
-
(
**
fmt
-
'0'
)))
luaL_error
(
L
,
"integral size overflow"
);
a
=
a
*
10
+
*
((
*
fmt
)
++
)
-
'0'
;
a
=
a
*
10
+
*
((
*
fmt
)
++
)
-
'0'
;
}
while
(
isdigit
(
**
fmt
));
}
while
(
isdigit
(
**
fmt
));
return
a
;
return
a
;
...
@@ -115,9 +117,9 @@ static size_t optsize (lua_State *L, char opt, const char **fmt) {
...
@@ -115,9 +117,9 @@ static size_t optsize (lua_State *L, char opt, const char **fmt) {
case
'f'
:
return
sizeof
(
float
);
case
'f'
:
return
sizeof
(
float
);
case
'd'
:
return
sizeof
(
double
);
case
'd'
:
return
sizeof
(
double
);
case
'x'
:
return
1
;
case
'x'
:
return
1
;
case
'c'
:
return
getnum
(
fmt
,
1
);
case
'c'
:
return
getnum
(
L
,
fmt
,
1
);
case
'i'
:
case
'I'
:
{
case
'i'
:
case
'I'
:
{
int
sz
=
getnum
(
fmt
,
sizeof
(
int
));
int
sz
=
getnum
(
L
,
fmt
,
sizeof
(
int
));
if
(
sz
>
MAXINTSIZE
)
if
(
sz
>
MAXINTSIZE
)
luaL_error
(
L
,
"integral size %d is larger than limit of %d"
,
luaL_error
(
L
,
"integral size %d is larger than limit of %d"
,
sz
,
MAXINTSIZE
);
sz
,
MAXINTSIZE
);
...
@@ -150,7 +152,7 @@ static void controloptions (lua_State *L, int opt, const char **fmt,
...
@@ -150,7 +152,7 @@ static void controloptions (lua_State *L, int opt, const char **fmt,
case
'>'
:
h
->
endian
=
BIG
;
return
;
case
'>'
:
h
->
endian
=
BIG
;
return
;
case
'<'
:
h
->
endian
=
LITTLE
;
return
;
case
'<'
:
h
->
endian
=
LITTLE
;
return
;
case
'!'
:
{
case
'!'
:
{
int
a
=
getnum
(
fmt
,
MAXALIGN
);
int
a
=
getnum
(
L
,
fmt
,
MAXALIGN
);
if
(
!
isp2
(
a
))
if
(
!
isp2
(
a
))
luaL_error
(
L
,
"alignment %d is not a power of 2"
,
a
);
luaL_error
(
L
,
"alignment %d is not a power of 2"
,
a
);
h
->
align
=
a
;
h
->
align
=
a
;
...
...
src/debug.c
浏览文件 @
cffe37fd
...
@@ -836,6 +836,10 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) {
...
@@ -836,6 +836,10 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) {
bugReportStart
();
bugReportStart
();
redisLog
(
REDIS_WARNING
,
redisLog
(
REDIS_WARNING
,
" Redis %s crashed by signal: %d"
,
REDIS_VERSION
,
sig
);
" Redis %s crashed by signal: %d"
,
REDIS_VERSION
,
sig
);
if
(
sig
==
SIGSEGV
)
{
redisLog
(
REDIS_WARNING
,
" SIGSEGV caused by address: %p"
,
(
void
*
)
info
->
si_addr
);
}
redisLog
(
REDIS_WARNING
,
redisLog
(
REDIS_WARNING
,
" Failed assertion: %s (%s:%d)"
,
server
.
assert_failed
,
" Failed assertion: %s (%s:%d)"
,
server
.
assert_failed
,
server
.
assert_file
,
server
.
assert_line
);
server
.
assert_file
,
server
.
assert_line
);
...
...
src/redis.c
浏览文件 @
cffe37fd
...
@@ -2128,6 +2128,12 @@ int processCommand(redisClient *c) {
...
@@ -2128,6 +2128,12 @@ int processCommand(redisClient *c) {
* is returning an error. */
* is returning an error. */
if
(
server
.
maxmemory
)
{
if
(
server
.
maxmemory
)
{
int
retval
=
freeMemoryIfNeeded
();
int
retval
=
freeMemoryIfNeeded
();
/* freeMemoryIfNeeded may flush slave output buffers. This may result
* into a slave, that may be the active client, to be freed. */
if
(
server
.
current_client
==
NULL
)
return
REDIS_ERR
;
/* It was impossible to free enough memory, and the command the client
* is trying to execute is denied during OOM conditions? Error. */
if
((
c
->
cmd
->
flags
&
REDIS_CMD_DENYOOM
)
&&
retval
==
REDIS_ERR
)
{
if
((
c
->
cmd
->
flags
&
REDIS_CMD_DENYOOM
)
&&
retval
==
REDIS_ERR
)
{
flagTransaction
(
c
);
flagTransaction
(
c
);
addReply
(
c
,
shared
.
oomerr
);
addReply
(
c
,
shared
.
oomerr
);
...
...
src/version.h
浏览文件 @
cffe37fd
#define REDIS_VERSION "2.8.2
3
"
#define REDIS_VERSION "2.8.2
4
"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录