diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-05-10 15:19:35 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-05-10 15:19:35 +0000 |
commit | 345f1a93a2300b1dc7f8ec8ef0fabd24615d82b5 (patch) | |
tree | 6cbbccceea9cfb67ecd1af4b2207bab6a7823b90 /src/backends/jerasure/jerasure_rs_cauchy.c | |
parent | 7c4ef60c9d9e69dd23e43ec59d6c03e139a32723 (diff) | |
parent | 842b4a9bd71f0ee6390bf3ace71666a9acc017fd (diff) | |
download | liberasurecode-345f1a93a2300b1dc7f8ec8ef0fabd24615d82b5.tar.gz |
Merge "Jerasure: Handle initialization errors correctly"
Diffstat (limited to 'src/backends/jerasure/jerasure_rs_cauchy.c')
-rw-r--r-- | src/backends/jerasure/jerasure_rs_cauchy.c | 10 |
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; } |