Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
3af99d5f
Unverified
Commit
3af99d5f
authored
Aug 09, 2019
by
Mark Nunberg
Committed by
GitHub
Aug 09, 2019
Browse files
Merge pull request #597 from justinbrewer/createArray-size_t
Update createArray to take size_t
parents
5d013039
f9bccfb7
Changes
5
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
3af99d5f
...
...
@@ -12,6 +12,16 @@
compare to other values, casting might be necessary or can be removed, if
casting was applied before.
### 0.x.x (unreleased)
**BREAKING CHANGES**
:
*
Change
`redisReply.len`
to
`size_t`
, as it denotes the the size of a string
User code should compare this to
`size_t`
values as well.
If it was used to compare to other values, casting might be necessary or can be removed, if casting was applied before.
*
`redisReplyObjectFunctions.createArray`
now takes
`size_t`
for its length parameter.
### 0.14.0 (2018-09-25)
*
Make string2ll static to fix conflict with Redis (Tom Lee [c3188b])
...
...
@@ -50,8 +60,9 @@
*
Import latest upstream sds. This breaks applications that are linked against the old hiredis v0.13
*
Fix warnings, when compiled with -Wshadow
*
Make hiredis compile in Cygwin on Windows, now CI-tested
**BREAKING CHANGES**
:
*
Bulk and multi-bulk lengths less than -1 or greater than
`LLONG_MAX`
are now
protocol errors. This is consistent with the RESP specification. On 32-bit
platforms, the upper bound is lowered to
`SIZE_MAX`
.
*
Remove backwards compatibility macro's
...
...
hiredis.c
View file @
3af99d5f
...
...
@@ -46,7 +46,7 @@
static
redisReply
*
createReplyObject
(
int
type
);
static
void
*
createStringObject
(
const
redisReadTask
*
task
,
char
*
str
,
size_t
len
);
static
void
*
createArrayObject
(
const
redisReadTask
*
task
,
in
t
elements
);
static
void
*
createArrayObject
(
const
redisReadTask
*
task
,
size_
t
elements
);
static
void
*
createIntegerObject
(
const
redisReadTask
*
task
,
long
long
value
);
static
void
*
createNilObject
(
const
redisReadTask
*
task
);
...
...
@@ -130,7 +130,7 @@ static void *createStringObject(const redisReadTask *task, char *str, size_t len
return
r
;
}
static
void
*
createArrayObject
(
const
redisReadTask
*
task
,
in
t
elements
)
{
static
void
*
createArrayObject
(
const
redisReadTask
*
task
,
size_
t
elements
)
{
redisReply
*
r
,
*
parent
;
r
=
createReplyObject
(
REDIS_REPLY_ARRAY
);
...
...
read.c
View file @
3af99d5f
...
...
@@ -385,7 +385,7 @@ static int processMultiBulkItem(redisReader *r) {
root
=
(
r
->
ridx
==
0
);
if
(
elements
<
-
1
||
elements
>
INT
_MAX
)
{
if
(
elements
<
-
1
||
(
LLONG_MAX
>
SIZE_MAX
&&
elements
>
SIZE
_MAX
)
)
{
__redisReaderSetError
(
r
,
REDIS_ERR_PROTOCOL
,
"Multi-bulk length out of range"
);
return
REDIS_ERR
;
...
...
read.h
View file @
3af99d5f
...
...
@@ -72,7 +72,7 @@ typedef struct redisReadTask {
typedef
struct
redisReplyObjectFunctions
{
void
*
(
*
createString
)(
const
redisReadTask
*
,
char
*
,
size_t
);
void
*
(
*
createArray
)(
const
redisReadTask
*
,
in
t
);
void
*
(
*
createArray
)(
const
redisReadTask
*
,
size_
t
);
void
*
(
*
createInteger
)(
const
redisReadTask
*
,
long
long
);
void
*
(
*
createNil
)(
const
redisReadTask
*
);
void
(
*
freeObject
)(
void
*
);
...
...
test.c
View file @
3af99d5f
...
...
@@ -360,7 +360,8 @@ static void test_reply_reader(void) {
freeReplyObject
(
reply
);
redisReaderFree
(
reader
);
test
(
"Set error when array > INT_MAX: "
);
#if LLONG_MAX > SIZE_MAX
test
(
"Set error when array > SIZE_MAX: "
);
reader
=
redisReaderCreate
();
redisReaderFeed
(
reader
,
"*9223372036854775807
\r\n
+asdf
\r\n
"
,
29
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
...
...
@@ -369,7 +370,6 @@ static void test_reply_reader(void) {
freeReplyObject
(
reply
);
redisReaderFree
(
reader
);
#if LLONG_MAX > SIZE_MAX
test
(
"Set error when bulk > SIZE_MAX: "
);
reader
=
redisReaderCreate
();
redisReaderFeed
(
reader
,
"$9223372036854775807
\r\n
asdf
\r\n
"
,
28
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment