summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-08-19 17:44:20 +0000
committerJeremy Allison <jra@samba.org>2001-08-19 17:44:20 +0000
commit4d693f881502fa7cf3b2649a7a5115f261cb4715 (patch)
tree3ce0d1dc2ee6b7058504729302670668be749bda
parent49b417b333fbba01604c13f12bbff864f9e0db37 (diff)
downloadsamba-4d693f881502fa7cf3b2649a7a5115f261cb4715.tar.gz
samba-4d693f881502fa7cf3b2649a7a5115f261cb4715.tar.xz
samba-4d693f881502fa7cf3b2649a7a5115f261cb4715.zip
More Realloc fixes.
Jeremy.
-rw-r--r--source/lib/util.c17
-rw-r--r--source/lib/util_array.c14
2 files changed, 17 insertions, 14 deletions
diff --git a/source/lib/util.c b/source/lib/util.c
index fd1299701e7..db87cfefa59 100644
--- a/source/lib/util.c
+++ b/source/lib/util.c
@@ -157,20 +157,21 @@ char *get_numlist(char *p, uint32 **num, int *count)
int val;
if (num == NULL || count == NULL)
- {
return NULL;
- }
(*count) = 0;
(*num ) = NULL;
- while ((p = Atoic(p, &val, ":,")) != NULL && (*p) != ':')
- {
- (*num) = Realloc((*num), ((*count)+1) * sizeof(uint32));
- if ((*num) == NULL)
- {
+ while ((p = Atoic(p, &val, ":,")) != NULL && (*p) != ':') {
+ uint32 *tn;
+
+ tn = Realloc((*num), ((*count)+1) * sizeof(uint32));
+ if (tn == NULL) {
+ if (*num)
+ free(*num);
return NULL;
- }
+ } else
+ (*num) = tn;
(*num)[(*count)] = val;
(*count)++;
p++;
diff --git a/source/lib/util_array.c b/source/lib/util_array.c
index 567c170834a..dcb2a6b5f08 100644
--- a/source/lib/util_array.c
+++ b/source/lib/util_array.c
@@ -58,18 +58,20 @@ void* add_copy_to_array(uint32 *len, void ***array, const void *item,
void* add_item_to_array(uint32 *len, void ***array, void *item)
{
+ void **tary;
+
if (len == NULL || array == NULL)
- {
return NULL;
- }
- (*array) = (void**)Realloc((*array), ((*len)+1)*sizeof((*array)[0]));
-
- if ((*array) != NULL)
- {
+ tary = (void**)Realloc((*array), ((*len)+1)*sizeof((*array)[0]));
+
+ if (tary != NULL) {
+ (*array) = tary;
(*array)[(*len)] = item;
(*len)++;
return item;
+ } else {
+ free((char *)*array);
}
return NULL;
}