2010-10-13 12:51:44

by Roman Borisov

[permalink] [raw]
Subject: [PATCH] nfs: fix unchecked value

Return value of "decode_attr_bitmap()" was not checked;

Signed-off-by: Roman Borisov <[email protected]>
---
fs/nfs/nfs4xdr.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index 6ea5c93..9e9cb40 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -2676,7 +2676,10 @@ out_overflow:
static int decode_attr_supported(struct xdr_stream *xdr, uint32_t *bitmap, uint32_t *bitmask)
{
if (likely(bitmap[0] & FATTR4_WORD0_SUPPORTED_ATTRS)) {
- decode_attr_bitmap(xdr, bitmask);
+ int ret;
+ ret = decode_attr_bitmap(xdr, bitmask);
+ if (unlikely(ret < 0))
+ return ret;
bitmap[0] &= ~FATTR4_WORD0_SUPPORTED_ATTRS;
} else
bitmask[0] = bitmask[1] = 0;
--
1.7.0.4



2010-10-19 14:24:48

by Roman Borisov

[permalink] [raw]
Subject: Re: [PATCH] nfs: fix unchecked value

On 10/13/2010 04:54 PM, Roman Borisov wrote:
> Return value of "decode_attr_bitmap()" was not checked;
>
> Signed-off-by: Roman Borisov<[email protected]>
> ---
> fs/nfs/nfs4xdr.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 6ea5c93..9e9cb40 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -2676,7 +2676,10 @@ out_overflow:
> static int decode_attr_supported(struct xdr_stream *xdr, uint32_t *bitmap, uint32_t *bitmask)
> {
> if (likely(bitmap[0]& FATTR4_WORD0_SUPPORTED_ATTRS)) {
> - decode_attr_bitmap(xdr, bitmask);
> + int ret;
> + ret = decode_attr_bitmap(xdr, bitmask);
> + if (unlikely(ret< 0))
> + return ret;
> bitmap[0]&= ~FATTR4_WORD0_SUPPORTED_ATTRS;
> } else
> bitmask[0] = bitmask[1] = 0;

Reviewed-by: Andy Shevchenko <[email protected]>

Hello,

could you please review the patch and send the comments if any

Thanks,
Roman Borisov