Fix sysupgrade(8) buffer overflowing on more than 16 installations.

This commit is contained in:
Jonas 'Sortie' Termansen 2021-01-15 21:06:26 +01:00
parent 516c15d69e
commit ad8e17a968
1 changed files with 5 additions and 5 deletions

View File

@ -80,15 +80,15 @@ static bool add_installation(struct blockdevice* bdev,
{
if ( installations_count == installations_length )
{
size_t new_length = installations_length;
if ( !new_length )
new_length = 16;
size_t length = installations_length;
if ( !length )
length = 8;
struct installation* new_installations = (struct installation*)
reallocarray(NULL, new_length, sizeof(struct installation));
reallocarray(NULL, length, 2 * sizeof(struct installation));
if ( !new_installations )
return false;
installations = new_installations;
installations_length = new_length;
installations_length = 2 * length;
}
struct installation* installation = &installations[installations_count++];
installation->bdev = bdev;