diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2013-06-05 09:50:16 +0200 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2013-06-05 09:50:16 +0200 |
commit | de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0 (patch) | |
tree | 6b79353031749488d12352283651d6dd8d1657c4 | |
parent | 3fa832fd9d5096cf155fa91127058d69f176362d (diff) | |
download | isl-de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0.tar.gz isl-de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0.tar.bz2 isl-de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0.zip |
isl_basic_set_opt: avoid invalid access on error path
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
-rw-r--r-- | isl_ilp.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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; |