Redmine #7428 Hanlde empty port alias

This commit is contained in:
Phil Davis 2017-03-26 14:06:00 +05:45
parent 756df55117
commit cc4bf28e0c
No known key found for this signature in database
GPG Key ID: 340A5689A513CA23

View File

@ -2744,18 +2744,36 @@ function filter_generate_user_rule($rule) {
return "# {$error_text}";
}
if ($rule['source']['port']
&& !(is_portrange(str_replace("-", ":", $rule['source']['port']))
|| alias_expand($rule['source']['port']))) {
$error_text = sprintf(gettext("Unresolvable source port alias '%1\$s' for rule '%2\$s'"), $rule['source']['port'], $rule['descr']);
file_notice("Filter_Reload", $error_text);
return "# {$error_text}";
&& !is_portorrange(str_replace("-", ":", $rule['source']['port']))) {
$error_text = "";
// It is not a literal port or port range, so alias should exist, and expand to something non-empty
if (!alias_expand($rule['source']['port'])) {
$error_text = sprintf(gettext("Unresolvable source port alias '%1\$s' for rule '%2\$s'"), $rule['source']['port'], $rule['descr']);
} else if (trim(filter_generate_nested_alias($rule['source']['port'])) == "") {
$error_text = sprintf(gettext("Empty source port alias '%1\$s' for rule '%2\$s'"), $rule['source']['port'], $rule['descr']);
}
if ($error_text) {
file_notice("Filter_Reload", $error_text);
return "# {$error_text}";
}
}
if ($rule['destination']['port']
&& !(is_portrange(str_replace("-", ":", $rule['destination']['port']))
|| alias_expand($rule['destination']['port']))) {
$error_text = sprintf(gettext("Unresolvable destination port alias '%1\$s' for rule '%2\$s'"), $rule['destination']['port'], $rule['descr']);
file_notice("Filter_Reload", $error_text);
return "# {$error_text}";
&& !is_portorrange(str_replace("-", ":", $rule['destination']['port']))) {
$error_text = "";
// It is not a literal port or port range, so alias should exist, and expand to something non-empty
if (!alias_expand($rule['destination']['port'])) {
$error_text = sprintf(gettext("Unresolvable destination port alias '%1\$s' for rule '%2\$s'"), $rule['destination']['port'], $rule['descr']);
} else if (trim(filter_generate_nested_alias($rule['destination']['port'])) == "") {
$error_text = sprintf(gettext("Empty destination port alias '%1\$s' for rule '%2\$s'"), $rule['destination']['port'], $rule['descr']);
}
if ($error_text) {
file_notice("Filter_Reload", $error_text);
return "# {$error_text}";
}
}
update_filter_reload_status(gettext("Setting up pass/block rules"));
$type = $rule['type'];