1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00

core: fix potential use of NULL pointer in function arraylist_clear

This commit is contained in:
Sébastien Helleu
2017-05-22 11:29:12 +02:00
parent 23ec19b8dd
commit c88d578d2d
+19 -17
View File
@@ -637,26 +637,28 @@ arraylist_clear (struct t_arraylist *arraylist)
}
}
if (arraylist->data
&& (arraylist->size_alloc != arraylist->size_alloc_min))
if (arraylist->data)
{
free (arraylist->data);
arraylist->data = NULL;
arraylist->size_alloc = 0;
if (arraylist->size_alloc_min > 0)
if (arraylist->size_alloc != arraylist->size_alloc_min)
{
arraylist->data = calloc(arraylist->size_alloc_min,
sizeof (*arraylist->data));
if (!arraylist->data)
return 0;
arraylist->size_alloc = arraylist->size_alloc_min;
free (arraylist->data);
arraylist->data = NULL;
arraylist->size_alloc = 0;
if (arraylist->size_alloc_min > 0)
{
arraylist->data = calloc(arraylist->size_alloc_min,
sizeof (*arraylist->data));
if (!arraylist->data)
return 0;
arraylist->size_alloc = arraylist->size_alloc_min;
}
}
else if (arraylist->size_alloc > 0)
{
memset (arraylist->data,
0,
arraylist->size_alloc * sizeof (*arraylist->data));
}
}
else if (arraylist->size_alloc > 0)
{
memset (arraylist->data,
0,
arraylist->size_alloc * sizeof (*arraylist->data));
}
arraylist->size = 0;