Commit bd7488d2 authored by Alex Smith's avatar Alex Smith Committed by michael-grunder
Browse files

read: Validate line items prior to checking for object creation callbacks

parent 5f9242a1
...@@ -267,19 +267,20 @@ static int processLineItem(redisReader *r) { ...@@ -267,19 +267,20 @@ static int processLineItem(redisReader *r) {
if ((p = readLine(r,&len)) != NULL) { if ((p = readLine(r,&len)) != NULL) {
if (cur->type == REDIS_REPLY_INTEGER) { if (cur->type == REDIS_REPLY_INTEGER) {
if (r->fn && r->fn->createInteger) {
long long v; long long v;
if (string2ll(p, len, &v) == REDIS_ERR) { if (string2ll(p, len, &v) == REDIS_ERR) {
__redisReaderSetError(r,REDIS_ERR_PROTOCOL, __redisReaderSetError(r,REDIS_ERR_PROTOCOL,
"Bad integer value"); "Bad integer value");
return REDIS_ERR; return REDIS_ERR;
} }
if (r->fn && r->fn->createInteger) {
obj = r->fn->createInteger(cur,v); obj = r->fn->createInteger(cur,v);
} else { } else {
obj = (void*)REDIS_REPLY_INTEGER; obj = (void*)REDIS_REPLY_INTEGER;
} }
} else if (cur->type == REDIS_REPLY_DOUBLE) { } else if (cur->type == REDIS_REPLY_DOUBLE) {
if (r->fn && r->fn->createDouble) {
char buf[326], *eptr; char buf[326], *eptr;
double d; double d;
...@@ -308,6 +309,8 @@ static int processLineItem(redisReader *r) { ...@@ -308,6 +309,8 @@ static int processLineItem(redisReader *r) {
return REDIS_ERR; return REDIS_ERR;
} }
} }
if (r->fn && r->fn->createDouble) {
obj = r->fn->createDouble(cur,d,buf,len); obj = r->fn->createDouble(cur,d,buf,len);
} else { } else {
obj = (void*)REDIS_REPLY_DOUBLE; obj = (void*)REDIS_REPLY_DOUBLE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment