From 63394166b595177244f7d7055cf0d8b2f48eee50 Mon Sep 17 00:00:00 2001 From: Nicolas Favre-Felix Date: Mon, 27 Dec 2010 17:32:21 +0100 Subject: [PATCH] Fixed leak. --- formats/json.c | 1 + formats/raw.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/formats/json.c b/formats/json.c index 90ff00b..1ea25a3 100644 --- a/formats/json.c +++ b/formats/json.c @@ -42,6 +42,7 @@ json_reply(redisAsyncContext *c, void *r, void *privdata) { evbuffer_free(body); json_decref(j); freeReplyObject(r); + evhttp_clear_headers(&cmd->uri_params); cmd_free(cmd); free(json_reply); } diff --git a/formats/raw.c b/formats/raw.c index 37b9379..7fe2056 100644 --- a/formats/raw.c +++ b/formats/raw.c @@ -20,6 +20,8 @@ raw_reply(redisAsyncContext *c, void *r, void *privdata) { char *raw_out; size_t sz; + evhttp_clear_headers(&cmd->uri_params); + if (reply == NULL) { evhttp_send_reply(cmd->rq, 404, "Not Found", NULL); return; @@ -124,7 +126,7 @@ raw_wrap(const redisReply *r, size_t *sz) { *sz = 1 + integer_length(r->len) + 1 + r->len + 1; p = ret = malloc(*sz); p += sprintf(p, "$%d\n", r->len); - memcpy(p, r->str, *sz - 1); + memcpy(p, r->str, *sz - 1 - (p-ret)); memcpy(ret + *sz - 1, "\n", 1); return ret;