Skip to content

Commit

Permalink
fix: core: rich: Catch ValueError on non-numeric priority values
Browse files Browse the repository at this point in the history
Be a bit more user-friendly by printing:

| Error: INVALID_RULE: invalid 'priority' attribute value 'ab'.

instead of Python's default, which is:

| Error: invalid literal for int() with base 10: 'ab'

Fixes: rhbz 1689429
  • Loading branch information
SirPhuttel committed Jun 26, 2020
1 parent 0753d6e commit 4bd0aad
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/firewall/core/rich.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,10 @@ def _import_from_string(self, rule_str):
raise FirewallError(errors.INVALID_RULE, "'family' attribute cannot have '%s' value. Use 'ipv4' or 'ipv6' instead." % attr_value)
self.family = attr_value
elif attr_name == 'priority':
self.priority = int(attr_value)
try:
self.priority = int(attr_value)
except ValueError:
raise FirewallError(errors.INVALID_RULE, "invalid 'priority' attribute value '%s'." % attr_value)
elif attr_name:
if attr_name == 'protocol':
err_msg = "wrong 'protocol' usage. Use either 'rule protocol value=...' or 'rule [forward-]port protocol=...'."
Expand Down
1 change: 1 addition & 0 deletions src/tests/regression/regression.at
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ m4_include([regression/gh599.at])
m4_include([regression/rhbz1829104.at])
m4_include([regression/rhbz1843398.at])
m4_include([regression/rhbz1839781.at])
m4_include([regression/rhbz1689429.at])
9 changes: 9 additions & 0 deletions src/tests/regression/rhbz1689429.at
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FWD_START_TEST([rich rule invalid priority])
AT_KEYWORDS(rich rhbz1689429)

FWD_CHECK([--add-rich-rule='rule priority=foo accept'], 122, [],
[Error: INVALID_RULE: invalid 'priority' attribute value 'foo'.
])
FWD_RELOAD

FWD_END_TEST([ignore])

0 comments on commit 4bd0aad

Please sign in to comment.