|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen/gnttab: address a violation of MISRA C Rule 13.6
commit a0094dc136c35e8602f5a01a34904e4e5e2e6b19
Author: Federico Serafini <federico.serafini@xxxxxxxxxxx>
AuthorDate: Mon Sep 30 14:49:16 2024 +0200
Commit: Stefano Stabellini <stefano.stabellini@xxxxxxx>
CommitDate: Fri Oct 4 14:24:05 2024 -0700
xen/gnttab: address a violation of MISRA C Rule 13.6
guest_handle_ok()'s expansion contains a sizeof() involving its
first argument guest_handle_cast().
The expansion of the latter, in turn, contains a variable
initialization.
Since MISRA considers the initialization (even of a local variable)
a side effect, the chain of expansions mentioned above violates
MISRA C:2012 Rule 13.6 (The operand of the `sizeof' operator shall not
contain any expression which has potential side effect).
Refactor the code to address the rule violation.
Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Federico Serafini <federico.serafini@xxxxxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
---
xen/common/compat/grant_table.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
index 5ad0debf96..bbb717bf64 100644
--- a/xen/common/compat/grant_table.c
+++ b/xen/common/compat/grant_table.c
@@ -78,12 +78,15 @@ int compat_grant_table_op(
cmd_op = cmd;
switch ( cmd_op )
{
-#define CASE(name) \
- case GNTTABOP_##name: \
- if ( unlikely(!guest_handle_okay(guest_handle_cast(uop, \
-
gnttab_##name##_compat_t), \
- count)) ) \
- rc = -EFAULT; \
+#define CASE(name) \
+ case GNTTABOP_ ## name: \
+ { \
+ XEN_GUEST_HANDLE_PARAM(gnttab_ ## name ## _compat_t) h = \
+ guest_handle_cast(uop, gnttab_ ## name ## _compat_t); \
+ \
+ if ( unlikely(!guest_handle_okay(h, count)) ) \
+ rc = -EFAULT; \
+ } \
break
#ifndef CHECK_gnttab_map_grant_ref
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |