summaryrefslogtreecommitdiff
path: root/memcached.c
diff options
context:
space:
mode:
Diffstat (limited to 'memcached.c')
-rw-r--r--memcached.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/memcached.c b/memcached.c
index 59f9559..da5c464 100644
--- a/memcached.c
+++ b/memcached.c
@@ -1111,12 +1111,16 @@ static void complete_incr_bin(conn *c) {
if (req->message.body.expiration != 0xffffffff) {
/* Save some room for the response */
rsp->message.body.value = htonll(req->message.body.initial);
+
+ snprintf(tmpbuf, INCR_MAX_STORAGE_LEN, "%llu",
+ (unsigned long long)req->message.body.initial);
+ int res = strlen(tmpbuf);
it = item_alloc(key, nkey, 0, realtime(req->message.body.expiration),
- INCR_MAX_STORAGE_LEN);
+ res + 2);
if (it != NULL) {
- snprintf(ITEM_data(it), INCR_MAX_STORAGE_LEN, "%llu",
- (unsigned long long)req->message.body.initial);
+ memcpy(ITEM_data(it), tmpbuf, res);
+ memcpy(ITEM_data(it) + res, "\r\n", 2);
if (store_item(it, NREAD_ADD, c)) {
c->cas = ITEM_get_cas(it);