From 5d990d289ee542537d77f21bfdc261bc0f2dac07 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Fri, 5 Dec 1997 04:28:05 +0000 Subject: [PATCH] (find_cells): check memory allocations git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4130 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kafs/common.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/kafs/common.c b/lib/kafs/common.c index c727f59c5..0b6d22987 100644 --- a/lib/kafs/common.c +++ b/lib/kafs/common.c @@ -162,21 +162,29 @@ find_cells(char *file, char ***cells, int *index) FILE *f; char cell[64]; int i; + int ind = *index; + f = fopen(file, "r"); if (f == NULL) return; while (fgets(cell, sizeof(cell), f)) { char *nl = strchr(cell, '\n'); if (nl) *nl = 0; - for(i = 0; i < *index; i++) + for(i = 0; i < ind; i++) if(strcmp((*cells)[i], cell) == 0) break; - if(i == *index){ - *cells = realloc(*cells, (*index + 1) * sizeof(**cells)); - (*cells)[(*index)++] = strdup(cell); + if(i == ind){ + *cells = realloc(*cells, (ind + 1) * sizeof(**cells)); + if (*cells == NULL) + break; + (*cells)[ind] = strdup(cell); + if ((*cells)[ind] == NULL) + break; + ++ind; } } fclose(f); + *index = ind; } /*