Unverified Commit f9e6c204 authored by Salvatore Sanfilippo's avatar Salvatore Sanfilippo Committed by GitHub
Browse files

Merge pull request #3745 from guybe7/unstable

enlarged buffer given to ld2string
parents c14ba46e 89a9e5a9
...@@ -145,7 +145,7 @@ robj *createStringObjectFromLongLong(long long value) { ...@@ -145,7 +145,7 @@ robj *createStringObjectFromLongLong(long long value) {
* *
* The 'humanfriendly' option is used for INCRBYFLOAT and HINCRBYFLOAT. */ * The 'humanfriendly' option is used for INCRBYFLOAT and HINCRBYFLOAT. */
robj *createStringObjectFromLongDouble(long double value, int humanfriendly) { robj *createStringObjectFromLongDouble(long double value, int humanfriendly) {
char buf[256]; char buf[MAX_LONG_DOUBLE_CHARS];
int len = ld2string(buf,sizeof(buf),value,humanfriendly); int len = ld2string(buf,sizeof(buf),value,humanfriendly);
return createStringObject(buf,len); return createStringObject(buf,len);
} }
......
...@@ -616,7 +616,7 @@ void hincrbyfloatCommand(client *c) { ...@@ -616,7 +616,7 @@ void hincrbyfloatCommand(client *c) {
value += incr; value += incr;
char buf[256]; char buf[MAX_LONG_DOUBLE_CHARS];
int len = ld2string(buf,sizeof(buf),value,1); int len = ld2string(buf,sizeof(buf),value,1);
new = sdsnewlen(buf,len); new = sdsnewlen(buf,len);
hashTypeSet(o,c->argv[2]->ptr,new,HASH_SET_TAKE_VALUE); hashTypeSet(o,c->argv[2]->ptr,new,HASH_SET_TAKE_VALUE);
......
...@@ -33,6 +33,11 @@ ...@@ -33,6 +33,11 @@
#include <stdint.h> #include <stdint.h>
#include "sds.h" #include "sds.h"
/* The maximum number of characters needed to represent a long double
* as a string (long double has a huge range).
* This should be the size of the buffer given to ld2string */
#define MAX_LONG_DOUBLE_CHARS 5*1024
int stringmatchlen(const char *p, int plen, const char *s, int slen, int nocase); int stringmatchlen(const char *p, int plen, const char *s, int slen, int nocase);
int stringmatch(const char *p, const char *s, int nocase); int stringmatch(const char *p, const char *s, int nocase);
long long memtoll(const char *p, int *err); long long memtoll(const char *p, int *err);
......
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