2017-04-14 13:43:43

by Cédric Le Goater

[permalink] [raw]
Subject: [PATCH] net/ncsi: fix checksum validation in response packet

htonl was used instead of ntohl. Surely a typo.

Signed-off-by: Cédric Le Goater <[email protected]>
---
net/ncsi/ncsi-rsp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c
index 087db775b3dc..d375286b79f2 100644
--- a/net/ncsi/ncsi-rsp.c
+++ b/net/ncsi/ncsi-rsp.c
@@ -52,7 +52,7 @@ static int ncsi_validate_rsp_pkt(struct ncsi_request *nr,

checksum = ncsi_calculate_checksum((unsigned char *)h,
sizeof(*h) + payload - 4);
- if (*pchecksum != htonl(checksum))
+ if (*pchecksum != ntohl(checksum))
return -EINVAL;

return 0;
--
2.7.4


2017-04-17 17:36:22

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net/ncsi: fix checksum validation in response packet

From: C?dric Le Goater <[email protected]>
Date: Fri, 14 Apr 2017 10:56:37 +0200

> htonl was used instead of ntohl. Surely a typo.
>
> Signed-off-by: C?dric Le Goater <[email protected]>

I don't think so, "checksum" is of type "u32" thus is in host byte
order. Therefore "htonl()" is correct.

2017-04-18 00:07:05

by Gavin Shan

[permalink] [raw]
Subject: Re: [PATCH] net/ncsi: fix checksum validation in response packet

On Mon, Apr 17, 2017 at 01:36:19PM -0400, David Miller wrote:
>From: C?dric Le Goater <[email protected]>
>Date: Fri, 14 Apr 2017 10:56:37 +0200
>
>> htonl was used instead of ntohl. Surely a typo.
>>
>> Signed-off-by: C?dric Le Goater <[email protected]>
>
>I don't think so, "checksum" is of type "u32" thus is in host byte
>order. Therefore "htonl()" is correct.
>

Yeah, "htonl()" is correct here. "*pchecksum" is in big-endian.
I want to know how C?dric thinks it's a problem. I guess he might
encounter the issue on the emulated NCSI channel by QEMU. On BCM5718
or BCM5719, the checksum in AEN and response packet are zero'd, meaning
the software shouldn't validate it at all.

Thanks,
Gavin

2017-04-18 09:55:05

by Cédric Le Goater

[permalink] [raw]
Subject: Re: [PATCH] net/ncsi: fix checksum validation in response packet

On 04/18/2017 02:06 AM, Gavin Shan wrote:
> On Mon, Apr 17, 2017 at 01:36:19PM -0400, David Miller wrote:
>> From: C?dric Le Goater <[email protected]>
>> Date: Fri, 14 Apr 2017 10:56:37 +0200
>>
>>> htonl was used instead of ntohl. Surely a typo.
>>>
>>> Signed-off-by: C?dric Le Goater <[email protected]>
>>
>> I don't think so, "checksum" is of type "u32" thus is in host byte
>> order. Therefore "htonl()" is correct.
>>
>
> Yeah, "htonl()" is correct here. "*pchecksum" is in big-endian.
> I want to know how C?dric thinks it's a problem. I guess he might
> encounter the issue on the emulated NCSI channel by QEMU.

yes exactly. my bad. After a second look this is correct. Sorry for
the noise.

> On BCM5718 or BCM5719, the checksum in AEN and response packet
> are zero'd, meaning the software shouldn't validate it at all.

Interesting.

Thanks,

C.