summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-05-10 15:19:35 +0000
committerGerrit Code Review <review@openstack.org>2017-05-10 15:19:35 +0000
commit345f1a93a2300b1dc7f8ec8ef0fabd24615d82b5 (patch)
tree6cbbccceea9cfb67ecd1af4b2207bab6a7823b90 /src
parent7c4ef60c9d9e69dd23e43ec59d6c03e139a32723 (diff)
parent842b4a9bd71f0ee6390bf3ace71666a9acc017fd (diff)
downloadliberasurecode-345f1a93a2300b1dc7f8ec8ef0fabd24615d82b5.tar.gz
Merge "Jerasure: Handle initialization errors correctly"
Diffstat (limited to 'src')
-rw-r--r--src/backends/jerasure/jerasure_rs_cauchy.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backends/jerasure/jerasure_rs_cauchy.c b/src/backends/jerasure/jerasure_rs_cauchy.c
index 3a0365a..82d796a 100644
--- a/src/backends/jerasure/jerasure_rs_cauchy.c
+++ b/src/backends/jerasure/jerasure_rs_cauchy.c
@@ -357,17 +357,21 @@ static void * jerasure_rs_cauchy_init(struct ec_backend_args *args,
}
desc->bitmatrix = desc->jerasure_matrix_to_bitmatrix(k, m, w, desc->matrix);
if (NULL == desc->bitmatrix) {
- goto error;
+ goto bitmatrix_error;
}
desc->schedule = desc->jerasure_smart_bitmatrix_to_schedule(k, m, w, desc->bitmatrix);
if (NULL == desc->schedule) {
- goto error;
+ goto schedule_error;
}
return desc;
+schedule_error:
+ free(desc->bitmatrix);
+bitmatrix_error:
+ free(desc->matrix);
error:
- free_rs_cauchy_desc(desc);
+ free(desc);
return NULL;
}