From 6aa534f525660ba623dc452a1649c4b9a76c4f8e Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 5 Jul 2013 18:28:45 +0200 Subject: [PATCH] isl_polynomial.c: with_merged_divs: accept NULL pointer on zero-size allocation Signed-off-by: Sven Verdoolaege --- isl_polynomial.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/isl_polynomial.c b/isl_polynomial.c index 8e78b9de..91d7c8bf 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -1368,6 +1368,7 @@ static __isl_give isl_qpolynomial *with_merged_divs( int *exp1 = NULL; int *exp2 = NULL; isl_mat *div = NULL; + int n_div1, n_div2; qp1 = isl_qpolynomial_cow(qp1); qp2 = isl_qpolynomial_cow(qp2); @@ -1378,9 +1379,11 @@ static __isl_give isl_qpolynomial *with_merged_divs( isl_assert(qp1->div->ctx, qp1->div->n_row >= qp2->div->n_row && qp1->div->n_col >= qp2->div->n_col, goto error); - exp1 = isl_alloc_array(qp1->div->ctx, int, qp1->div->n_row); - exp2 = isl_alloc_array(qp2->div->ctx, int, qp2->div->n_row); - if (!exp1 || !exp2) + n_div1 = qp1->div->n_row; + n_div2 = qp2->div->n_row; + exp1 = isl_alloc_array(qp1->div->ctx, int, n_div1); + exp2 = isl_alloc_array(qp2->div->ctx, int, n_div2); + if ((n_div1 && !exp1) || (n_div2 && !exp2)) goto error; div = isl_merge_divs(qp1->div, qp2->div, exp1, exp2); -- 2.11.4.GIT