In prepare_erasure_requests(), when init_erasure_buffer() returns NULL, we should release buffers of requests which are allocated via xmalloc().
Signed-off-by: Bingpeng Zhu <[email protected]> --- sheep/gateway.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/sheep/gateway.c b/sheep/gateway.c index 89db9bf..3cb21f0 100644 --- a/sheep/gateway.c +++ b/sheep/gateway.c @@ -152,6 +152,8 @@ static struct req_iter *prepare_erasure_requests(struct request *req, int *nr) if (!buf) { sd_err("failed to init erasure buffer %"PRIx64, req->rq.obj.oid); + for (i = 0; i < nr_to_send; i++) + free(reqs[i].buf); free(reqs); reqs = NULL; goto out; -- 1.7.1 -- sheepdog mailing list [email protected] https://lists.wpkg.org/mailman/listinfo/sheepdog
