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:
parent
9bcb27f2e8
commit
121ddd2b94
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user