cloud-setup: limit number of supported interfaces to avoid overlapping table numbers

The table number is chosen as 30400 + iface_idx. That is, the range is
limited and we shouldn't handle more than 100 devices. Add a check for
that and error out.

(cherry picked from commit b68d694b78)
(cherry picked from commit 292233e16e)
This commit is contained in:
Thomas Haller 2021-09-01 19:23:46 +02:00 committed by Fernando Fernandez Mancera
parent 67a83b54cd
commit 661da869b3

View file

@ -434,6 +434,14 @@ _config_one(GCancellable * sigterm_cancellable,
return FALSE;
}
if (config_data->iface_idx >= 100) {
/* since we use the iface_idx to select a table number, the range is limited from
* 0 to 99. Note that the providers are required to provide increasing numbers,
* so this means we bail out after the first 100 devices. */
_LOGD("config device %s: skip because number of supported interfaces reached", hwaddr);
return FALSE;
}
_LOGD("config device %s: configuring \"%s\" (%s)...",
hwaddr,
nm_device_get_iface(device) ?: "/unknown/",