Always throw out the whole screen array

If n < screens_len, screens_len did not get updated. So boundary
checks wouldn't catch, if screens between n and screens_len are
accessed. This will prevent such an error type in the future.
This commit is contained in:
Benedikt Heine 2019-02-25 14:49:18 +01:00 committed by Nikos Tsipinakis
parent 9bcb27f2e8
commit 121ddd2b94

View File

@ -77,12 +77,8 @@ void init_screens(void)
void alloc_screen_ar(int n)
{
assert(n > 0);
if (n <= screens_len) return;
screens = g_realloc(screens, n * sizeof(struct screen_info));
memset(screens, 0, n * sizeof(struct screen_info));
g_free(screens);
screens = g_malloc0(n * sizeof(struct screen_info));
screens_len = n;
}