[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 0/4] fix some issues related to MISRA C:2012 Rule 9.1



This patch series is aimed at discussing different categories of
patterns concerning local variables that are possibly not
initialized in all code paths, which results in hard-to-prove
correctness. The main categories are as follows:

1. Variables initialized by passing a pointer to them to a function.
   Many such functions are coupled with error handling which results
         in the variable not being initialized.

2. Some variables are used in switch statements and the control flow
   ensures that all code paths do initialize them, but due to the
         presence of goto statements, the flow is harder to follow.

I emphasize that, as far as I can tell, the code is already
compliant with the rule, but there is room for improvement, especially
on the side of allowing automatic checks to be more effective.

Nicola Vetrini (4):
  xen/arm: justify or initialize conditionally uninitialized variables
  xen/arm64: bitops: justify uninitialized variable inside a macro
  xen/arm: initialize conditionally uninitialized local variables
  xen/arm: initialize conditionally uninitialized local variables

 docs/misra/safe.json                        | 24 +++++++++++++++
 xen/arch/arm/arm64/lib/bitops.c             |  3 ++
 xen/arch/arm/arm64/lib/find_next_bit.c      |  1 +
 xen/arch/arm/bootfdt.c                      |  6 ++++
 xen/arch/arm/cpuerrata.c                    |  6 ++--
 xen/arch/arm/decode.c                       |  2 ++
 xen/arch/arm/dm.c                           |  2 +-
 xen/arch/arm/domain_build.c                 | 29 ++++++++++++++----
 xen/arch/arm/domctl.c                       |  8 ++---
 xen/arch/arm/efi/efi-boot.h                 |  6 ++--
 xen/arch/arm/gic-v3-its.c                   |  9 +++---
 xen/arch/arm/gic-v3-lpi.c                   | 17 ++++++-----
 xen/arch/arm/guest_walk.c                   | 12 ++++----
 xen/arch/arm/include/asm/guest_atomics.h    |  3 ++
 xen/arch/arm/include/asm/p2m.h              | 10 ++++---
 xen/arch/arm/mm.c                           |  1 +
 xen/arch/arm/p2m.c                          | 33 ++++++++++++---------
 xen/arch/arm/platforms/xilinx-zynqmp-eemi.c | 10 ++-----
 xen/arch/arm/psci.c                         | 10 +++----
 xen/drivers/char/pl011.c                    |  2 +-
 20 files changed, 129 insertions(+), 65 deletions(-)

--
2.34.1



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.