mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-07 05:30:17 +01:00
setting-ip-config: validate route attributes in verify()
It's better to verify these route attributes so that the user can be notified early if something is not supported or invalid. The downside is that some incorrect profiles (with invalid route attributes) that previously would work since this commit will not anymore as the incorrect bits don't get ignored but rejected instead. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/407 https://bugzilla.redhat.com/show_bug.cgi?id=1821787
This commit is contained in:
parent
5d0d13f570
commit
7781f78435
1 changed files with 14 additions and 0 deletions
|
|
@ -5059,6 +5059,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|||
|
||||
/* Validate routes */
|
||||
for (i = 0; i < priv->routes->len; i++) {
|
||||
gs_free_error GError *local = NULL;
|
||||
NMIPRoute *route = (NMIPRoute *) priv->routes->pdata[i];
|
||||
|
||||
if (nm_ip_route_get_family (route) != NM_SETTING_IP_CONFIG_GET_FAMILY (setting)) {
|
||||
|
|
@ -5070,6 +5071,19 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|||
g_prefix_error (error, "%s.%s: ", nm_setting_get_name (setting), NM_SETTING_IP_CONFIG_ROUTES);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!_nm_ip_route_attribute_validate_all (route, &local)) {
|
||||
g_set_error (error,
|
||||
NM_CONNECTION_ERROR,
|
||||
NM_CONNECTION_ERROR_INVALID_PROPERTY,
|
||||
_("invalid attribute: %s"),
|
||||
local->message);
|
||||
g_prefix_error (error,
|
||||
"%s.%s: ",
|
||||
nm_setting_get_name (setting),
|
||||
NM_SETTING_IP_CONFIG_ROUTES);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (priv->routing_rules) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue