mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
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@citrix.com> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
1 parent
6f621f23bc
commit
a0094dc136
1 file changed
+9
-6
@@ -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
|
||||
|
||||