On 21/01/13 15:59, Yao Zhao wrote: > On 12-10-19 10:20 AM, Steve Dickson wrote: >> >> On 19/10/12 08:26, J. Bruce Fields wrote: >>> Steve, is it you that maintains libgssglue now? >> Yes, I do. Thanks for the ping. I did miss this... > Hi Steve, > > Just want to follow up whether these are fixed? Yes they were... in libgssglue-0.5 steved. > > thanks, > yao >> steved. >> >>> --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@xxxxxxxxxxxxx> >>>> >>>> @@ -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@xxxxxxxxxxxxx> >>>> >>>> @@ -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@xxxxxxxxxxxxx> >>>> >>>> @@ -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@xxxxxxxxxxxxx> >>>> >>>> @@ -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 */ > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html