summaryrefslogtreecommitdiff
path: root/deps/hiredis/sds.c
diff options
context:
space:
mode:
Diffstat (limited to 'deps/hiredis/sds.c')
-rw-r--r--deps/hiredis/sds.c9
1 files changed, 6 insertions, 3 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;