mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
MISRA C Rule 17.1 states: "The features of `<stdarg.h>' shall not be used"
The Xen community wants to avoid using variadic functions except for specific circumstances where it feels appropriate by strict code review. Functions hypercall_create_continuation and hypercall_xlat_continuation are internal helper functions made to break long running hypercalls into multiple calls. They take a variable number of arguments depending on the original hypercall they are trying to continue. Add SAF deviations for the aforementioned functions. Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
1 parent
ea33a6e1e3
commit
402c2d3e66
3 files changed
+11
No files matched your search
@@ -36,6 +36,14 @@
|
||||
},
|
||||
{
|
||||
"id": "SAF-4-safe",
|
||||
"analyser": {
|
||||
"eclair": "MC3R1.R17.1"
|
||||
},
|
||||
"name": "Rule 17.1: internal helper functions made to break long running hypercalls into multiple calls.",
|
||||
"text": "They need to take a variable number of arguments depending on the original hypercall they are trying to continue."
|
||||
},
|
||||
{
|
||||
"id": "SAF-5-safe",
|
||||
"analyser": {},
|
||||
"name": "Sentinel",
|
||||
"text": "Next ID to be used"
|
||||
|
||||
@@ -382,6 +382,7 @@ unsigned long hypercall_create_continuation(
|
||||
const char *p = format;
|
||||
unsigned long arg, rc;
|
||||
unsigned int i;
|
||||
/* SAF-4-safe allowed variadic function */
|
||||
va_list args;
|
||||
|
||||
current->hcall_preempted = true;
|
||||
|
||||
@@ -31,6 +31,7 @@ unsigned long hypercall_create_continuation(
|
||||
const char *p = format;
|
||||
unsigned long arg;
|
||||
unsigned int i;
|
||||
/* SAF-4-safe allowed variadic function */
|
||||
va_list args;
|
||||
|
||||
curr->hcall_preempted = true;
|
||||
@@ -115,6 +116,7 @@ int hypercall_xlat_continuation(unsigned int *id, unsigned int nr,
|
||||
struct cpu_user_regs *regs;
|
||||
unsigned int i, cval = 0;
|
||||
unsigned long nval = 0;
|
||||
/* SAF-4-safe allowed variadic function */
|
||||
va_list args;
|
||||
|
||||
ASSERT(nr <= ARRAY_SIZE(mcs->call.args));
|
||||
|
||||