Not checking the result of wl_array_add() can cause writes past the end of the
allocated buffer if realloc fails.
Signed-off-by: Aleksandr Mezin <mezin.alexander@gmail.com>
if (count < i)
return -1;
- if (count == i)
- wl_array_add(entries, sizeof *start);
+ if (count == i) {
+ if (!wl_array_add(entries, sizeof *start))
+ return -1;
+ }
start = entries->data;
start[i].data = data;
return -1;
if (count == i) {
- wl_array_add(entries, sizeof *start);
+ if (!wl_array_add(entries, sizeof *start))
+ return -1;
+
start = entries->data;
start[i].data = NULL;
} else {