From de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 5 Jun 2013 09:50:16 +0200 Subject: isl_basic_set_opt: avoid invalid access on error path Signed-off-by: Sven Verdoolaege --- isl_ilp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/isl_ilp.c b/isl_ilp.c index e6bc6242..24f6c57c 100644 --- a/isl_ilp.c +++ b/isl_ilp.c @@ -375,6 +375,7 @@ enum isl_lp_result isl_basic_set_opt(__isl_keep isl_basic_set *bset, int max, isl_mat *bset_div = NULL; isl_mat *div = NULL; enum isl_lp_result res; + int bset_n_div; if (!bset || !obj) return isl_lp_error; @@ -388,14 +389,15 @@ enum isl_lp_result isl_basic_set_opt(__isl_keep isl_basic_set *bset, int max, "expecting integer affine expression", return isl_lp_error); - if (bset->n_div == 0 && obj->ls->div->n_row == 0) + bset_n_div = isl_basic_set_dim(bset, isl_dim_div); + if (bset_n_div == 0 && obj->ls->div->n_row == 0) return basic_set_opt(bset, max, obj, opt); bset = isl_basic_set_copy(bset); obj = isl_aff_copy(obj); bset_div = extract_divs(bset); - exp1 = isl_alloc_array(ctx, int, bset_div->n_row); + exp1 = isl_alloc_array(ctx, int, bset_n_div); exp2 = isl_alloc_array(ctx, int, obj->ls->div->n_row); if (!bset_div || !exp1 || !exp2) goto error; -- cgit v1.2.3