* [PATCH]fix bugs and compiling warnings in libgssglue
@ 2012-09-17 19:07 Yao Zhao
2012-10-19 12:26 ` J. Bruce Fields
0 siblings, 1 reply; 8+ messages in thread
From: Yao Zhao @ 2012-09-17 19:07 UTC (permalink / raw)
To: linux-nfs
[-- Attachment #1: Type: text/plain, Size: 110 bytes --]
Hi,
The 4 attached patches fixed a couple of warnings and bug found when
compiling libgssglue.
thanks,
yao
[-- Attachment #2: libgssglue-canon-name.patch --]
[-- Type: text/x-patch, Size: 1990 bytes --]
--- 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,
[-- Attachment #3: libgssglue-g-initialize.patch --]
[-- Type: text/x-patch, Size: 701 bytes --]
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>
[-- Attachment #4: libgssglue-gss-inq-cred.patch --]
[-- Type: text/x-patch, Size: 913 bytes --]
--- 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;
}
[-- Attachment #5: libgssglue-mglueP.patch --]
[-- Type: text/x-patch, Size: 641 bytes --]
--- 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 */
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH]fix bugs and compiling warnings in libgssglue
2012-09-17 19:07 [PATCH]fix bugs and compiling warnings in libgssglue Yao Zhao
@ 2012-10-19 12:26 ` J. Bruce Fields
2012-10-19 14:20 ` Steve Dickson
0 siblings, 1 reply; 8+ messages in thread
From: J. Bruce Fields @ 2012-10-19 12:26 UTC (permalink / raw)
To: Yao Zhao; +Cc: linux-nfs, steved
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 */
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH]fix bugs and compiling warnings in libgssglue
2012-10-19 12:26 ` J. Bruce Fields
@ 2012-10-19 14:20 ` Steve Dickson
2013-01-21 20:59 ` Yao Zhao
0 siblings, 1 reply; 8+ messages in thread
From: Steve Dickson @ 2012-10-19 14:20 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Yao Zhao, linux-nfs
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@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 */
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH]fix bugs and compiling warnings in libgssglue
2012-10-19 14:20 ` Steve Dickson
@ 2013-01-21 20:59 ` Yao Zhao
2013-01-23 18:21 ` Steve Dickson
0 siblings, 1 reply; 8+ messages in thread
From: Yao Zhao @ 2013-01-21 20:59 UTC (permalink / raw)
To: Steve Dickson; +Cc: J. Bruce Fields, linux-nfs
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?
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@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 */
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH]fix bugs and compiling warnings in libgssglue
2013-01-21 20:59 ` Yao Zhao
@ 2013-01-23 18:21 ` Steve Dickson
2013-01-23 18:23 ` Yao Zhao
0 siblings, 1 reply; 8+ messages in thread
From: Steve Dickson @ 2013-01-23 18:21 UTC (permalink / raw)
To: Yao Zhao; +Cc: J. Bruce Fields, linux-nfs
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@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 */
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH]fix bugs and compiling warnings in libgssglue
2013-01-23 18:21 ` Steve Dickson
@ 2013-01-23 18:23 ` Yao Zhao
2013-01-23 20:07 ` Steve Dickson
0 siblings, 1 reply; 8+ messages in thread
From: Yao Zhao @ 2013-01-23 18:23 UTC (permalink / raw)
To: Steve Dickson; +Cc: J. Bruce Fields, linux-nfs
On 13-01-23 01:21 PM, Steve Dickson wrote:
>
> 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
Thanks Steve!
Could you give me a link where to find it? I couldn't find it at
http://www.citi.umich.edu/projects/nfsv4/linux/libgssglue/
thanks,
yao
> 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@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 */
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-01-23 20:48 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-17 19:07 [PATCH]fix bugs and compiling warnings in libgssglue Yao Zhao
2012-10-19 12:26 ` J. Bruce Fields
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).