From 4cdaa0b2f34d4bafda34c3b2499ef6e826f0ec05 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 5 Jul 2013 19:19:36 +0200 Subject: [PATCH] isl_tab_dup: accept NULL pointer on zero-size allocation Signed-off-by: Sven Verdoolaege --- isl_tab.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/isl_tab.c b/isl_tab.c index f3a80704..afcba4b1 100644 --- a/isl_tab.c +++ b/isl_tab.c @@ -238,29 +238,29 @@ struct isl_tab *isl_tab_dup(struct isl_tab *tab) if (!dup->mat) goto error; dup->var = isl_alloc_array(tab->mat->ctx, struct isl_tab_var, tab->max_var); - if (!dup->var) + if (tab->max_var && !dup->var) goto error; for (i = 0; i < tab->n_var; ++i) dup->var[i] = tab->var[i]; dup->con = isl_alloc_array(tab->mat->ctx, struct isl_tab_var, tab->max_con); - if (!dup->con) + if (tab->max_con && !dup->con) goto error; for (i = 0; i < tab->n_con; ++i) dup->con[i] = tab->con[i]; dup->col_var = isl_alloc_array(tab->mat->ctx, int, tab->mat->n_col - off); - if (!dup->col_var) + if ((tab->mat->n_col - off) && !dup->col_var) goto error; for (i = 0; i < tab->n_col; ++i) dup->col_var[i] = tab->col_var[i]; dup->row_var = isl_alloc_array(tab->mat->ctx, int, tab->mat->n_row); - if (!dup->row_var) + if (tab->mat->n_row && !dup->row_var) goto error; for (i = 0; i < tab->n_row; ++i) dup->row_var[i] = tab->row_var[i]; if (tab->row_sign) { dup->row_sign = isl_alloc_array(tab->mat->ctx, enum isl_tab_row_sign, tab->mat->n_row); - if (!dup->row_sign) + if (tab->mat->n_row && !dup->row_sign) goto error; for (i = 0; i < tab->n_row; ++i) dup->row_sign[i] = tab->row_sign[i]; @@ -271,7 +271,7 @@ struct isl_tab *isl_tab_dup(struct isl_tab *tab) goto error; dup->sample_index = isl_alloc_array(tab->mat->ctx, int, tab->samples->n_row); - if (!dup->sample_index) + if (tab->samples->n_row && !dup->sample_index) goto error; dup->n_sample = tab->n_sample; dup->n_outside = tab->n_outside; -- 2.11.4.GIT