From 949a274817085cb0117430056c5b22ec8f051878 Mon Sep 17 00:00:00 2001 From: sunhe Date: Sat, 22 Oct 2016 01:54:46 +0800 Subject: [PATCH] bitops.c/bitfieldCommand: update higest_write_offset with check --- src/bitops.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bitops.c b/src/bitops.c index 302e811d2..46eee22c3 100644 --- a/src/bitops.c +++ b/src/bitops.c @@ -907,7 +907,7 @@ void bitfieldCommand(client *c) { struct bitfieldOp *ops = NULL; /* Array of ops to execute at end. */ int owtype = BFOVERFLOW_WRAP; /* Overflow type. */ int readonly = 1; - long higest_write_offset = 0; + size_t higest_write_offset = 0; for (j = 2; j < c->argc; j++) { int remargs = c->argc-j-1; /* Remaining args other than current. */ @@ -957,7 +957,8 @@ void bitfieldCommand(client *c) { if (opcode != BITFIELDOP_GET) { readonly = 0; - higest_write_offset = bitoffset + bits - 1; + if (higest_write_offset < bitoffset + bits - 1) + higest_write_offset = bitoffset + bits - 1; /* INCRBY and SET require another argument. */ if (getLongLongFromObjectOrReply(c,c->argv[j+3],&i64,NULL) != C_OK){ zfree(ops);