diff options
Diffstat (limited to 'src')
-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; } |