summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Szyndela <adrian.s@samsung.com>2019-09-06 12:04:25 +0200
committerAdrian Szyndela <adrian.s@samsung.com>2019-09-06 12:04:25 +0200
commitc302e6270859212d58d0a1e61b7249e9a17f1efa (patch)
tree6b0e791d568b1c889ac1b3662d78dc26d78adee6
parent80bc1add4b4947443ab267e37cb260034c9c39c0 (diff)
downloaddbus-tools-c302e6270859212d58d0a1e61b7249e9a17f1efa.tar.gz
dbus-tools-c302e6270859212d58d0a1e61b7249e9a17f1efa.tar.bz2
dbus-tools-c302e6270859212d58d0a1e61b7249e9a17f1efa.zip
This adds a set of checking rules that check for typos, misspellings in attributes and some of values of attributes, such as send_type. Based on manual for dbus-daemon, which defines the policy tags and attributes. Change-Id: Ieb4795cdb1a4f0642684f8685092675e84e223ea
-rw-r--r--policychecker/rules.xsl53
1 files changed, 53 insertions, 0 deletions
diff --git a/policychecker/rules.xsl b/policychecker/rules.xsl
index bc306d9..a899113 100644
--- a/policychecker/rules.xsl
+++ b/policychecker/rules.xsl
@@ -205,4 +205,57 @@
</sch:rule>
</sch:pattern>
+ <sch:pattern name="Unknown keywords">
+ <sch:rule context="policy">
+ <sch:report test="not (@context or @at_console or @user or @group)">Unknown keyword. Allowed attributes: context, at_console, user, group.</sch:report>
+ </sch:rule>
+ <sch:rule context="allow|deny">
+ <sch:report test="not (@send_interface or @send_member or @send_error or @send_broadcast or @send_destination or @send_destination_prefix or @send_type or @send_path or @send_requested_reply or @receive_interface or @receive_member or @receive_error or @receive_sender or @receive_type or @receive_path or @receive_requested_reply or @eavesdrop or @own or @own_prefix or @user or @group or @min_fds or @max_fds)">
+ Unknown keyword. Allowed attributes are:
+ - send_interface, send_member, send_error, send_broadcast, send_destination, send_destination_prefix, send_type, send_path, send_requested_reply
+ - receive_interface, receive_member, receive_error, receive_sender, receive_type, receive_path, receive_requested_reply
+ - eavesdrop
+ - own, own_prefix
+ - user, group
+ - min_fds, max_fds
+ </sch:report>
+ </sch:rule>
+ <sch:rule context="check">
+ <sch:report test="not (@send_interface or @send_member or @send_error or @send_broadcast or @send_destination or @send_destination_prefix or @send_type or @send_path or @send_requested_reply or @receive_interface or @receive_member or @receive_error or @receive_sender or @receive_type or @receive_path or @receive_requested_reply or @eavesdrop or @own or @own_prefix or @user or @group or @min_fds or @max_fds or @privilege)">
+ Unknown keyword. Allowed attributes are:
+ - send_interface, send_member, send_error, send_broadcast, send_destination, send_destination_prefix, send_type, send_path, send_requested_reply
+ - receive_interface, receive_member, receive_error, receive_sender, receive_type, receive_path, receive_requested_reply
+ - eavesdrop
+ - own, own_prefix
+ - user, group
+ - privilege
+ - min_fds, max_fds
+ </sch:report>
+ </sch:rule>
+ </sch:pattern>
+
+ <sch:pattern name="Unknown attribute values">
+ <sch:rule context="policy[@at_console]">
+ <sch:report test="@at_console != 'true' and @at_console != 'false'">Allowed values for at_console: "true", "false".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@send_broadcast]|deny[@send_broadcast]|check[@send_broadcast]">
+ <sch:report test="@send_broadcast != 'true' and @send_broadcast != 'false'">Allowed values for send_broadcast: "true", "false".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@send_requested_reply]|deny[@send_requested_reply]|check[@send_requested_reply]">
+ <sch:report test="@send_requested_reply != 'true' and @send_requested_reply != 'false'">Allowed values for send_requested_reply: "true", "false".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@receive_requested_reply]|deny[@receive_requested_reply]|check[@receive_requested_reply]">
+ <sch:report test="@receive_requested_reply != 'true' and @receive_requested_reply != 'false'">Allowed values for receive_requested_reply: "true", "false".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@eavesdrop]|deny[@eavesdrop]|check[@eavesdrop]">
+ <sch:report test="@eavesdrop != 'true' and @eavesdrop != 'false'">Allowed values for eavesdrop: "true", "false".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@send_type]|deny[@send_type]|check[@send_type]">
+ <sch:report test="@send_type != 'method_call' and @send_type != 'method_return' and @send_type != 'signal' and @send_type != 'error'">Allowed values for send_type: "method_call", "method_return", "signal, "error".</sch:report>
+ </sch:rule>
+ <sch:rule context="allow[@receive_type]|deny[@receive_type]|check[@receive_type]">
+ <sch:report test="@receive_type != 'method_call' and @receive_type != 'method_return' and @receive_type != 'signal' and @receive_type != 'error'">Allowed values for receive_type: "method_call", "method_return", "signal, "error".</sch:report>
+ </sch:rule>
+ </sch:pattern>
+
</sch:schema>