2008-06-02 10:01:29

by Al Viro

[permalink] [raw]
Subject: [PATCH] cifs endianness fixes


__le16 fields used as host-endian.

Signed-off-by: Al Viro <[email protected]>
---
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 9b8b4cf..fb655b4 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -3927,9 +3927,9 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
}

ref = (struct dfs_referral_level_3 *) &(pSMBr->referrals);
- if (ref->VersionNumber != 3) {
+ if (ref->VersionNumber != cpu_to_le16(3)) {
cERROR(1, ("Referrals of V%d version are not supported,"
- "should be V3", ref->VersionNumber));
+ "should be V3", le16_to_cpu(ref->VersionNumber)));
rc = -EINVAL;
goto parse_DFS_referrals_exit;
}
@@ -3977,7 +3977,7 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
if (rc)
goto parse_DFS_referrals_exit;

- ref += ref->Size;
+ ref += le16_to_cpu(ref->Size);
}

parse_DFS_referrals_exit:


2008-06-04 06:14:59

by Steve French

[permalink] [raw]
Subject: Re: [PATCH] cifs endianness fixes

ACK

Please merge

On Mon, Jun 2, 2008 at 4:59 AM, Al Viro <[email protected]> wrote:
>
> __le16 fields used as host-endian.
>
> Signed-off-by: Al Viro <[email protected]>
> ---
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index 9b8b4cf..fb655b4 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -3927,9 +3927,9 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
> }
>
> ref = (struct dfs_referral_level_3 *) &(pSMBr->referrals);
> - if (ref->VersionNumber != 3) {
> + if (ref->VersionNumber != cpu_to_le16(3)) {
> cERROR(1, ("Referrals of V%d version are not supported,"
> - "should be V3", ref->VersionNumber));
> + "should be V3", le16_to_cpu(ref->VersionNumber)));
> rc = -EINVAL;
> goto parse_DFS_referrals_exit;
> }
> @@ -3977,7 +3977,7 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
> if (rc)
> goto parse_DFS_referrals_exit;
>
> - ref += ref->Size;
> + ref += le16_to_cpu(ref->Size);
> }
>
> parse_DFS_referrals_exit:
>



--
Thanks,

Steve