summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2018-10-23 15:42:33 -0700
committerdormando <dormando@rydia.net>2018-10-23 15:42:33 -0700
commitbb0980fbbafd4eb723f76918e7ca364360315c1b (patch)
tree1a3157a625f22061426867f480a57e8cf3ce1190
parent566610d41bb224b3913ded99a53d1e2efa0a0d85 (diff)
downloadmemcached-bb0980fbbafd4eb723f76918e7ca364360315c1b.tar.gz
fix INCR/DECR refcount leak for extstore headers1.5.12
Bug added in 2014. Same condition reused to bounce incr/decr commands off of CHUNKED and ITEM_HDR items. Thus, incr/decr'ing a value that is already in extstore would immediately cause a refcount leak :(
-rw-r--r--memcached.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/memcached.c b/memcached.c
index f7c4359..8d79eba 100644
--- a/memcached.c
+++ b/memcached.c
@@ -4234,6 +4234,7 @@ enum delta_result_type do_add_delta(conn *c, const char *key, const size_t nkey,
#else
if (it->nbytes <= 2 || (it->it_flags & (ITEM_CHUNKED)) != 0) {
#endif
+ do_item_remove(it);
return NON_NUMERIC;
}