From: Yao Zhao <yao.zhao@windriver.com>
To: <linux-nfs@vger.kernel.org>
Subject: [PATCH]fix bugs and compiling warnings in libgssglue
Date: Mon, 17 Sep 2012 15:07:52 -0400 [thread overview]
Message-ID: <50577508.90004@windriver.com> (raw)
[-- 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 */
next reply other threads:[~2012-09-17 19:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-17 19:07 Yao Zhao [this message]
2012-10-19 12:26 ` [PATCH]fix bugs and compiling warnings in libgssglue 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
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=50577508.90004@windriver.com \
--to=yao.zhao@windriver.com \
--cc=linux-nfs@vger.kernel.org \
/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.