]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xfrm: policy: Restore dir assignments in xfrm_hash_rebuild()
authorNathan Chancellor <nathan@kernel.org>
Thu, 29 Aug 2024 18:14:54 +0000 (11:14 -0700)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 9 Sep 2024 13:30:44 +0000 (15:30 +0200)
commite62d39332d4b9400a69ba902797aa17a1a0037e7
tree99bd407042149bde038f1bfed550c9762fde2a50
parent6a13f5afd39d17320316dbb8dd533fe7c6a613e6
xfrm: policy: Restore dir assignments in xfrm_hash_rebuild()

Clang warns (or errors with CONFIG_WERROR):

  net/xfrm/xfrm_policy.c:1286:8: error: variable 'dir' is uninitialized when used here [-Werror,-Wuninitialized]
   1286 |                 if ((dir & XFRM_POLICY_MASK) == XFRM_POLICY_OUT) {
        |                      ^~~
  net/xfrm/xfrm_policy.c:1257:9: note: initialize the variable 'dir' to silence this warning
   1257 |         int dir;
        |                ^
        |                 = 0
  1 error generated.

A recent refactoring removed some assignments to dir because
xfrm_policy_is_dead_or_sk() has a dir assignment in it. However, dir is
used elsewhere in xfrm_hash_rebuild(), including within loops where it
needs to be reloaded for each policy. Restore the assignments before the
first use of dir to fix the warning and ensure dir is properly
initialized throughout the function.

Fixes: 08c2182cf0b4 ("xfrm: policy: use recently added helper in more places")
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_policy.c