net/sunrpc/auth_gss/gss_rpc_xdr.c: In function ‘gssx_dec_option_array’:
net/sunrpc/auth_gss/gss_rpc_xdr.c:258: warning: ‘creds’ may be used uninitialized in this function
Return early if count is zero, to make it clearer to the compiler (and the
casual reviewer) that no more processing is done.
Signed-off-by: Geert Uytterhoeven <redacted>
---
net/sunrpc/auth_gss/gss_rpc_xdr.c | 32 +++++++++++++++++---------------
1 files changed, 17 insertions(+), 15 deletions(-)
@@ -264,25 +264,27 @@ static int gssx_dec_option_array(struct xdr_stream *xdr,if(unlikely(p==NULL))return-ENOSPC;count=be32_to_cpup(p++);-if(count!=0){-/* we recognize only 1 currently: CREDS_VALUE */-oa->count=1;+if(!count)+return0;-oa->data=kmalloc(sizeof(structgssx_option),GFP_KERNEL);-if(!oa->data)-return-ENOMEM;+/* we recognize only 1 currently: CREDS_VALUE */+oa->count=1;-creds=kmalloc(sizeof(structsvc_cred),GFP_KERNEL);-if(!creds){-kfree(oa->data);-return-ENOMEM;-}+oa->data=kmalloc(sizeof(structgssx_option),GFP_KERNEL);+if(!oa->data)+return-ENOMEM;-oa->data[0].option.data=CREDS_VALUE;-oa->data[0].option.len=sizeof(CREDS_VALUE);-oa->data[0].value.data=(void*)creds;-oa->data[0].value.len=0;+creds=kmalloc(sizeof(structsvc_cred),GFP_KERNEL);+if(!creds){+kfree(oa->data);+return-ENOMEM;}++oa->data[0].option.data=CREDS_VALUE;+oa->data[0].option.len=sizeof(CREDS_VALUE);+oa->data[0].value.data=(void*)creds;+oa->data[0].value.len=0;+for(i=0;i<count;i++){gssx_bufferdummy={0,NULL};u32length;
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: J. Bruce Fields <hidden> Date: 2013-05-06 12:55:38
On Mon, May 06, 2013 at 09:21:03AM +0200, Geert Uytterhoeven wrote:
net/sunrpc/auth_gss/gss_rpc_xdr.c: In function ‘gssx_dec_option_array’:
net/sunrpc/auth_gss/gss_rpc_xdr.c:258: warning: ‘creds’ may be used uninitialized in this function
Return early if count is zero, to make it clearer to the compiler (and the
casual reviewer) that no more processing is done.
@@ -264,25 +264,27 @@ static int gssx_dec_option_array(struct xdr_stream *xdr,if(unlikely(p==NULL))return-ENOSPC;count=be32_to_cpup(p++);-if(count!=0){-/* we recognize only 1 currently: CREDS_VALUE */-oa->count=1;+if(!count)+return0;-oa->data=kmalloc(sizeof(structgssx_option),GFP_KERNEL);-if(!oa->data)-return-ENOMEM;+/* we recognize only 1 currently: CREDS_VALUE */+oa->count=1;-creds=kmalloc(sizeof(structsvc_cred),GFP_KERNEL);-if(!creds){-kfree(oa->data);-return-ENOMEM;-}+oa->data=kmalloc(sizeof(structgssx_option),GFP_KERNEL);+if(!oa->data)+return-ENOMEM;-oa->data[0].option.data=CREDS_VALUE;-oa->data[0].option.len=sizeof(CREDS_VALUE);-oa->data[0].value.data=(void*)creds;-oa->data[0].value.len=0;+creds=kmalloc(sizeof(structsvc_cred),GFP_KERNEL);+if(!creds){+kfree(oa->data);+return-ENOMEM;}++oa->data[0].option.data=CREDS_VALUE;+oa->data[0].option.len=sizeof(CREDS_VALUE);+oa->data[0].value.data=(void*)creds;+oa->data[0].value.len=0;+for(i=0;i<count;i++){gssx_bufferdummy={0,NULL};u32length;
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html