diff options
| author | Michael Biebl <biebl@debian.org> | 2012-08-07 22:16:03 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2012-08-07 22:16:03 +0200 |
| commit | 8c98b34228abb4dfde822ad89106b4d8b2287639 (patch) | |
| tree | 9305205f351759c51888cd9f7d75a2eb5b0e1431 /src/settings/plugins/ifupdown/parser.c | |
| parent | 7f1d08cf21e97f5e60d4636bb1e6c287c34ee2df (diff) | |
Imported Upstream version 0.9.6.0 upstream/0.9.6.0
Diffstat (limited to 'src/settings/plugins/ifupdown/parser.c')
| -rw-r--r-- | src/settings/plugins/ifupdown/parser.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/settings/plugins/ifupdown/parser.c b/src/settings/plugins/ifupdown/parser.c index 6927f43f..88fb57b6 100644 --- a/src/settings/plugins/ifupdown/parser.c +++ b/src/settings/plugins/ifupdown/parser.c @@ -498,12 +498,20 @@ update_ip4_setting_from_if_block(NMConnection *connection, /* mask/prefix */ netmask_v = ifparser_getkey (block, "netmask"); if (netmask_v) { - if (!inet_pton (AF_INET, netmask_v, &tmp_mask)) { + if (strlen (netmask_v) < 7) { + netmask_int = atoi (netmask_v); + if (netmask_int > 32) { + g_set_error (error, eni_plugin_error_quark (), 0, + "Invalid IPv4 netmask '%s'", netmask_v); + goto error; + } + } else if (!inet_pton (AF_INET, netmask_v, &tmp_mask)) { g_set_error (error, eni_plugin_error_quark (), 0, "Invalid IPv4 netmask '%s'", netmask_v); goto error; + } else { + netmask_int = nm_utils_ip4_netmask_to_prefix (tmp_mask.s_addr); } - netmask_int = nm_utils_ip4_netmask_to_prefix (tmp_mask.s_addr); } /* gateway */ |