For the record, as I mentioned during the call today, I asked to
postpone the 9.1 work for later, because it is going to take a lot of
work and discussions to figure out a good way forward for all these
cases. There are at least 3-5 different sub-classes for this issues. So
I think it would be better for the Xen community to make more progress
with other rules and violations fixes first.
On Fri, 14 Jul 2023, Nicola Vetrini wrote:
> 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
>