diff options
author | Thomas Haller <thaller@redhat.com> | 2016-09-23 11:16:48 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-09-23 11:16:53 +0200 |
commit | 78898c4d64a631df7f544397af4575227a713ae5 (patch) | |
tree | beeaf8082142a3a604221b7fc1ff9a815c5b9983 | |
parent | c6902b4e79c682976617c5d1ea65fd5a83a78625 (diff) | |
download | NetworkManager-78898c4d64a631df7f544397af4575227a713ae5.tar.gz |
libnm: reject too large team-config JSON
-rw-r--r-- | libnm-core/nm-setting-team-port.c | 10 | ||||
-rw-r--r-- | libnm-core/nm-setting-team.c | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c index 649d958273..f64aa5f947 100644 --- a/libnm-core/nm-setting-team-port.c +++ b/libnm-core/nm-setting-team-port.c @@ -117,6 +117,16 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) } if (priv->config) { + if (strlen (priv->config) > 1*1024*1024) { + g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("team config exceeds size limit")); + g_prefix_error (error, + "%s.%s: ", + NM_SETTING_TEAM_PORT_SETTING_NAME, + NM_SETTING_TEAM_PORT_CONFIG); + return FALSE; + } + if (!nm_utils_is_json_object (priv->config, error)) { g_prefix_error (error, "%s.%s: ", diff --git a/libnm-core/nm-setting-team.c b/libnm-core/nm-setting-team.c index c49ebff2b2..e83ce309a4 100644 --- a/libnm-core/nm-setting-team.c +++ b/libnm-core/nm-setting-team.c @@ -89,6 +89,16 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return FALSE; if (priv->config) { + if (strlen (priv->config) > 1*1024*1024) { + g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("team config exceeds size limit")); + g_prefix_error (error, + "%s.%s: ", + NM_SETTING_TEAM_SETTING_NAME, + NM_SETTING_TEAM_CONFIG); + return FALSE; + } + if (!nm_utils_is_json_object (priv->config, error)) { g_prefix_error (error, "%s.%s: ", |