All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xen/xsm: Generate the permission in a spec-compliant way
@ 2015-02-20 15:58 Julien Grall
  2015-02-20 23:01 ` Daniel De Graaf
  0 siblings, 1 reply; 6+ messages in thread
From: Julien Grall @ 2015-02-20 15:58 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, dgdegra, Julien Grall, wei.liu2, ian.campbell

Each class can contains 32 permisions which are encoded on a word (one
bit per permission).

Currently the awk script will generate an hexadecimal value for each
permission. This may result to generate an invalid value on some version
of awk.

For instance debian jessie is using a version of mawk where (1 << 31)
will result to 0x7fffffff.

This is because the awk specification requires to do the arithmetic with
float. So the resulting integer may vary following the implementation.

As the generated headers are only used by C code, generate the
permission define via "1UL << n".

Signed-off-by: Julien Grall <julien.grall@linaro.org>

---
https://bugs.launchpad.net/ubuntu/+source/mawk/+bug/1159933

This bug impacts every version of Xen built on Debian Jessie when XSM is
enabled.

It would be interesting to backport it.
---
 xen/xsm/flask/policy/mkaccess_vector.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/xsm/flask/policy/mkaccess_vector.sh b/xen/xsm/flask/policy/mkaccess_vector.sh
index 8ec87f7..7fa4aaf 100644
--- a/xen/xsm/flask/policy/mkaccess_vector.sh
+++ b/xen/xsm/flask/policy/mkaccess_vector.sh
@@ -42,7 +42,7 @@ $1 == "class"	{
 			} 
 			av_defined[tclass] = 1;
 
-			permission = 1;
+			permission = 0;
 
 			nextstate = "INHERITS_OR_CLASS-OPENBRACKET";
 			next;
@@ -108,8 +108,8 @@ $1 == "{"	{
 
 			for (i = 0; i < spaces; i++) 
 				printf(" ") > outfile; 
-			printf("0x%08xUL\n", permission) > outfile; 
-			permission = permission * 2;
+			printf("(1UL << %u)\n", permission) > outfile;
+			permission = permission + 1;
 		}
 $1 == "}"	{
 			if (nextstate != "CLASS-CLOSEBRACKET" && 
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-02-24 16:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-20 15:58 [PATCH] xen/xsm: Generate the permission in a spec-compliant way Julien Grall
2015-02-20 23:01 ` Daniel De Graaf
2015-02-23  9:44   ` Ian Campbell
2015-02-23 15:04   ` Julien Grall
2015-02-23 16:11     ` Daniel De Graaf
2015-02-24 16:45   ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.