2021-11-04 03:22:18

by CGEL

[permalink] [raw]
Subject: [PATCH linux-next] ipv6/esp6: Remove structure variables and alignment statements

From: luo penghao <[email protected]>

The definition of this variable is just to find the length of the
structure after aligning the structure. The PTR alignment function
is to optimize the size of the structure. In fact, it doesn't seem
to be of much use, because both members of the structure are of
type u32.
So I think that the definition of the variable and the
corresponding alignment can be deleted, the value of extralen can
be directly passed in the size of the structure.

The clang_analyzer complains as follows:

net/ipv6/esp6.c:117:27 warning:

Value stored to 'extra' during its initialization is never read

Reported-by: Zeal Robot <[email protected]>
Signed-off-by: luo penghao <[email protected]>
---
net/ipv6/esp6.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index ed2f061..c35c211 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -114,7 +114,6 @@ static inline struct scatterlist *esp_req_sg(struct crypto_aead *aead,

static void esp_ssg_unref(struct xfrm_state *x, void *tmp)
{
- struct esp_output_extra *extra = esp_tmp_extra(tmp);
struct crypto_aead *aead = x->data;
int extralen = 0;
u8 *iv;
@@ -122,7 +121,7 @@ static void esp_ssg_unref(struct xfrm_state *x, void *tmp)
struct scatterlist *sg;

if (x->props.flags & XFRM_STATE_ESN)
- extralen += sizeof(*extra);
+ extralen += sizeof(struct esp_output_extra);

iv = esp_tmp_iv(aead, tmp, extralen);
req = esp_tmp_req(aead, iv);
--
2.15.2



2021-11-19 08:37:10

by Steffen Klassert

[permalink] [raw]
Subject: Re: [PATCH linux-next] ipv6/esp6: Remove structure variables and alignment statements

On Thu, Nov 04, 2021 at 03:19:31AM +0000, [email protected] wrote:
> From: luo penghao <[email protected]>
>
> The definition of this variable is just to find the length of the
> structure after aligning the structure. The PTR alignment function
> is to optimize the size of the structure. In fact, it doesn't seem
> to be of much use, because both members of the structure are of
> type u32.
> So I think that the definition of the variable and the
> corresponding alignment can be deleted, the value of extralen can
> be directly passed in the size of the structure.
>
> The clang_analyzer complains as follows:
>
> net/ipv6/esp6.c:117:27 warning:
>
> Value stored to 'extra' during its initialization is never read
>
> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: luo penghao <[email protected]>

Applied to ipsec-next, thanks!