diff options
-rw-r--r-- | deps/hiredis/sds.c | 9 | ||||
-rw-r--r-- | deps/hiredis/sds.h | 4 | ||||
-rw-r--r-- | src/sds.c | 7 | ||||
-rw-r--r-- | src/sds.h | 4 |
4 files changed, 15 insertions, 9 deletions
diff --git a/deps/hiredis/sds.c b/deps/hiredis/sds.c index 47b9823ea..4af9961ad 100644 --- a/deps/hiredis/sds.c +++ b/deps/hiredis/sds.c @@ -123,7 +123,7 @@ void sdsclear(sds s) { /* Enlarge the free space at the end of the sds string so that the caller * is sure that after calling this function can overwrite up to addlen * bytes after the end of the string, plus one more byte for nul term. - * + * * Note: this does not change the *length* of the sds string as returned * by sdslen(), but only the free buffer space we have. */ sds sdsMakeRoomFor(sds s, size_t addlen) { @@ -200,7 +200,10 @@ size_t sdsAllocSize(sds s) { void sdsIncrLen(sds s, int incr) { struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr))); - assert(sh->free >= incr); + if (incr >= 0) + assert(sh->free >= (unsigned int)incr); + else + assert(sh->len >= (unsigned int)(-incr)); sh->len += incr; sh->free -= incr; assert(sh->free >= 0); @@ -457,7 +460,7 @@ sds sdscatfmt(sds s, char const *fmt, ...) { i = initlen; /* Position of the next byte to write to dest str. */ while(*f) { char next, *str; - int l; + unsigned int l; long long num; unsigned long long unum; diff --git a/deps/hiredis/sds.h b/deps/hiredis/sds.h index 9a604021c..37aaf7a28 100644 --- a/deps/hiredis/sds.h +++ b/deps/hiredis/sds.h @@ -39,8 +39,8 @@ typedef char *sds; struct sdshdr { - int len; - int free; + unsigned int len; + unsigned int free; char buf[]; }; @@ -200,7 +200,10 @@ size_t sdsAllocSize(sds s) { void sdsIncrLen(sds s, int incr) { struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr))); - assert(sh->free >= incr); + if (incr >= 0) + assert(sh->free >= (unsigned int)incr); + else + assert(sh->len >= (unsigned int)(-incr)); sh->len += incr; sh->free -= incr; assert(sh->free >= 0); @@ -458,7 +461,7 @@ sds sdscatfmt(sds s, char const *fmt, ...) { i = initlen; /* Position of the next byte to write to dest str. */ while(*f) { char next, *str; - int l; + unsigned int l; long long num; unsigned long long unum; @@ -39,8 +39,8 @@ typedef char *sds; struct sdshdr { - int len; - int free; + unsigned int len; + unsigned int free; char buf[]; }; |