From b68d694b78fd9b4b63b0592a2518f387aaa35f87 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 1 Sep 2021 19:23:46 +0200 Subject: [PATCH] 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. --- src/nm-cloud-setup/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/nm-cloud-setup/main.c b/src/nm-cloud-setup/main.c index 403c8d7597..6be8c145f3 100644 --- a/src/nm-cloud-setup/main.c +++ b/src/nm-cloud-setup/main.c @@ -438,6 +438,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/",