From b14af86424e3cb8c89c0f2fd2b856580e446fba4 Mon Sep 17 00:00:00 2001 From: Danny Al-Gaaf Date: Sat, 22 Mar 2014 21:58:53 +0100 Subject: [PATCH] jerasure.c: free memory before return in error case Fix for Coverity issue from Ceph project: CID 1093211 (#1 of 1): Resource leak (RESOURCE_LEAK) 20. leaked_storage: Variable "ind_to_row" going out of scope leaks the storage it points to. CID 1093212 (#1 of 1): Resource leak (RESOURCE_LEAK) 20. leaked_storage: Variable "row_ids" going out of scope leaks the storage it points to. Signed-off-by: Danny Al-Gaaf --- src/jerasure.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/jerasure.c b/src/jerasure.c index d2af918..de54fcf 100644 --- a/src/jerasure.c +++ b/src/jerasure.c @@ -838,7 +838,11 @@ static int **jerasure_generate_decoding_schedule(int k, int m, int w, int *bitma row_ids = talloc(int, k+m); ind_to_row = talloc(int, k+m); - if (set_up_ids_for_scheduled_decoding(k, m, erasures, row_ids, ind_to_row) < 0) return NULL; + if (set_up_ids_for_scheduled_decoding(k, m, erasures, row_ids, ind_to_row) < 0) { + free(row_ids); + free(ind_to_row); + return NULL; + } /* Now, we're going to create one decoding matrix which is going to decode everything with one call. The hope is that the scheduler