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... 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