All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Yao Zhao <yao.zhao@windriver.com>
Cc: linux-nfs@vger.kernel.org, steved@redhat.com
Subject: Re: [PATCH]fix bugs and compiling warnings in libgssglue
Date: Fri, 19 Oct 2012 08:26:50 -0400	[thread overview]
Message-ID: <20121019122650.GA20324@fieldses.org> (raw)
In-Reply-To: <50577508.90004@windriver.com>

Steve, is it you that maintains libgssglue now?

--b.

On Mon, Sep 17, 2012 at 03:07:52PM -0400, Yao Zhao wrote:
> Hi,
> 
> The 4 attached patches fixed a couple of warnings and bug found when
> compiling libgssglue.
> 
> thanks,
> yao

> --- a/src/g_canon_name.c
> +++ b/src/g_canon_name.c
> fix the bug:
> g_canon_name.c:125:5: warning: passing argument 2 of '__gss_copy_namebuf' from incompatible pointer type [enabled by default]
> 
> the 2nd argument of __gss_copy_namebuf should be address of *gss_buffer_t, \
> but a *gss_buffer_t is assigned.
> 
> what __gss_copy_namebuf does is to alloc memory for a gss_buffer_desc and \
> copy from src and return its address.
> 
> if following code failed, gss_release_name will free \
> union_canon_name->external_name.value if it is not NULL.
> 
> OM_uint32 __gss_copy_namebuf(src, dest)
>     gss_buffer_t   src;
>     gss_buffer_t   *dest;
> 
> typedef struct gss_union_name_t {
> 	gss_mechanism		gss_mech;
> 	gss_OID			name_type;
> 	gss_buffer_desc		external_name;
> 	/*
> 	 * These last two fields are only filled in for mechanism
> 	 * names.
> 	 */
> 	gss_OID			mech_type;
> 	gss_name_t		mech_name;
> } gss_union_name_desc, *gss_union_name_t;
> 
> typedef struct gss_buffer_desc_struct {
>       size_t length;
>       void FAR *value;
> } gss_buffer_desc, FAR *gss_buffer_t;
> 
> Upstream-Status: Pending
> Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> 
> @@ -121,11 +121,17 @@ gss_canonicalize_name (OM_uint32 *minor_
>  
>      union_canon_name->mech_name = mech_name;
>  
> -    status = __gss_copy_namebuf(&union_input_name->external_name,
> -				&union_canon_name->external_name);
> -    if (status != GSS_S_COMPLETE)
> -	goto failure;
> +    union_canon_name->external_name.value = (void*) malloc(
> +                      union_input_name->external_name.length + 1);
> +    if (!union_canon_name->external_name.value)
> +        goto failure;
>  
> +    memcpy(union_canon_name->external_name.value, 
> +           union_input_name->external_name.value, 
> +           union_input_name->external_name.length);
> +    union_canon_name->external_name.length = 
> +                      union_input_name->external_name.length; 
> +   
>      if (union_input_name->name_type != GSS_C_NO_OID) {
>  	status = generic_gss_copy_oid(minor_status,
>  				      union_input_name->name_type,

> diff --git a/src/g_initialize.c b/src1/g_initialize.c
> index 82fcce1..200f173 100644
> --- a/src/g_initialize.c
> +++ b/src/g_initialize.c
> 
> Fix the warning for getuid, geteuid
> g_initialize.c: In function 'linux_initialize':
> g_initialize.c:275:5: warning: implicit declaration of function 'getuid' [-Wimplicit-function-declaration]
> g_initialize.c:275:5: warning: implicit declaration of function 'geteuid' [-Wimplicit-function-declaration]
> 
> Upstream-Status: Pending
> Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> 
> @@ -29,6 +29,8 @@
>  #include "mglueP.h"
>  #include <stdlib.h>
>  
> +#include <unistd.h>   /*getuid, geteuid */
> +#include <sys/types.h>
>  #include <stdio.h>
>  #include <string.h>
>  #include <ctype.h>

> --- a/src/g_inq_cred.c
> +++ b/src/g_inq_cred.c
> 1) add free if malloc failed for (*mechanisms)->elements
> 2) g_inq_cred.c: In function 'gss_inquire_cred':
> g_inq_cred.c:161:8: warning: passing argument 3 of 'generic_gss_copy_oid' from incompatible pointer type [enabled by default]
> 
> Upstream-Status: Pending
> Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> 
> @@ -152,13 +152,15 @@ gss_OID_set *		mechanisms;
>  			     union_cred->count);
>  	if ((*mechanisms)->elements == NULL) {
>  	    *minor_status = ENOMEM;
> +	    free(*mechanisms);
> +	    *mechanisms = GSS_C_NO_OID_SET;
>  	    return (GSS_S_FAILURE);
>  	}
>  
>  	for (i=0; i < union_cred->count; i++) {
> -	    status = generic_gss_copy_oid(minor_status,
> +	    status = generic_gss_add_oid_set_member(minor_status,
>  	    				  &union_cred->mechs_array[i],
> -					  &((*mechanisms)->elements[i]));
> +					  mechanisms);
>  	    if (status != GSS_S_COMPLETE)
>  	        break;
>  	}

> --- a/src/mglueP.h
> +++ b/src/mglueP.h
> fix the warning:
> warning: implicit declaration of function 'generic_gss_copy_oid_set' [-Wimplicit-function-declaration]
> 
> Upstream-Status: Pending
> Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> 
> @@ -447,6 +447,12 @@ OM_uint32 generic_gss_copy_oid
>  	    gss_OID *		/* new_oid */
>  	    );
>  
> +OM_uint32 generic_gss_copy_oid_set
> +	   (OM_uint32 *minor_status,	/* minor_status */
> +	    const gss_OID_set_desc * const oidset,	/* oid */
> +	    gss_OID_set *new_oidset			/* new_oid */
> +	   );
> +
>  OM_uint32 generic_gss_create_empty_oid_set
>  	   (OM_uint32 *,	/* minor_status */
>  	    gss_OID_set *	/* oid_set */


  reply	other threads:[~2012-10-19 12:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-17 19:07 [PATCH]fix bugs and compiling warnings in libgssglue Yao Zhao
2012-10-19 12:26 ` J. Bruce Fields [this message]
2012-10-19 14:20   ` Steve Dickson
2013-01-21 20:59     ` Yao Zhao
2013-01-23 18:21       ` Steve Dickson
2013-01-23 18:23         ` Yao Zhao
2013-01-23 20:07           ` Steve Dickson
2013-01-23 20:47             ` Yao Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121019122650.GA20324@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=steved@redhat.com \
    --cc=yao.zhao@windriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.