[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU gss branch, master, updated. gss-0-1-5-26-gdb66fcd
From: |
Simon Josefsson |
Subject: |
[SCM] GNU gss branch, master, updated. gss-0-1-5-26-gdb66fcd |
Date: |
Mon, 29 Mar 2010 20:02:16 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gss".
http://git.savannah.gnu.org/cgit/gss.git/commit/?id=db66fcdcfb8008de1ed66f2baab1c67554c32810
The branch, master has been updated
via db66fcdcfb8008de1ed66f2baab1c67554c32810 (commit)
via 28e4938b5d027be4cba1d5d1c90fda56bdf02ce1 (commit)
from ed975555af056ddea561ecd96c1491bb904e7358 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit db66fcdcfb8008de1ed66f2baab1c67554c32810
Author: Simon Josefsson <address@hidden>
Date: Mon Mar 29 22:02:12 2010 +0200
gss_inquire_mech_for_saslname: Don't read out bounds.
commit 28e4938b5d027be4cba1d5d1c90fda56bdf02ce1
Author: Simon Josefsson <address@hidden>
Date: Mon Mar 29 22:00:48 2010 +0200
Check for read-out-bounds.
-----------------------------------------------------------------------
Summary of changes:
lib/meta.c | 10 +++++++---
lib/meta.h | 2 +-
lib/saslname.c | 3 +--
tests/saslname.c | 5 ++++-
4 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/lib/meta.c b/lib/meta.c
index f836776..579cbf6 100644
--- a/lib/meta.c
+++ b/lib/meta.c
@@ -112,15 +112,19 @@ _gss_find_mech (const gss_OID oid)
}
_gss_mech_api_t
-_gss_find_mech_by_saslname (const char *saslname)
+_gss_find_mech_by_saslname (const gss_buffer_t sasl_mech_name)
{
size_t i;
- if (!saslname)
+ if (sasl_mech_name == NULL
+ || sasl_mech_name->value == NULL
+ || sasl_mech_name->length == 0)
return NULL;
for (i = 0; _gss_mech_apis[i].mech; i++)
- if (strcmp (_gss_mech_apis[i].sasl_name, saslname) == 0)
+ if (strlen (_gss_mech_apis[i].sasl_name) == sasl_mech_name->length &&
+ memcmp (_gss_mech_apis[i].sasl_name, sasl_mech_name->value,
+ sasl_mech_name->length) == 0)
return &_gss_mech_apis[i];
return NULL;
diff --git a/lib/meta.h b/lib/meta.h
index 35b3b6a..90196ed 100644
--- a/lib/meta.h
+++ b/lib/meta.h
@@ -123,7 +123,7 @@ typedef struct _gss_mech_api_struct
_gss_mech_api_t _gss_find_mech (const gss_OID oid);
_gss_mech_api_t _gss_find_mech_no_default (const gss_OID oid);
-_gss_mech_api_t _gss_find_mech_by_saslname (const char *saslname);
+_gss_mech_api_t _gss_find_mech_by_saslname (const gss_buffer_t sasl_mech_name);
OM_uint32 _gss_indicate_mechs1 (OM_uint32 * minor_status,
gss_OID_set * mech_set);
diff --git a/lib/saslname.c b/lib/saslname.c
index 59f5b6d..a96b2c7 100644
--- a/lib/saslname.c
+++ b/lib/saslname.c
@@ -159,8 +159,7 @@ gss_inquire_mech_for_saslname (OM_uint32 *minor_status,
return GSS_S_CALL_INACCESSIBLE_READ;
}
- m = _gss_find_mech_by_saslname (sasl_mech_name->value);
-
+ m = _gss_find_mech_by_saslname (sasl_mech_name);
if (!m)
{
if (minor_status)
diff --git a/tests/saslname.c b/tests/saslname.c
index 5844e8f..9a88384 100644
--- a/tests/saslname.c
+++ b/tests/saslname.c
@@ -75,8 +75,9 @@ main (int argc, char *argv[])
maj_stat, min_stat);
#ifdef USE_KERBEROS5
- bufdesc.value = (char *) "GS2-KRB5";
bufdesc.length = 8;
+ bufdesc.value = malloc (bufdesc.length);
+ memcpy (bufdesc.value, "GS2-KRB5", bufdesc.length);
maj_stat = gss_inquire_mech_for_saslname (&min_stat, &bufdesc, NULL);
if (maj_stat == GSS_S_COMPLETE)
@@ -94,6 +95,8 @@ main (int argc, char *argv[])
if (oid != GSS_KRB5 || !gss_oid_equal (oid, GSS_KRB5))
fail ("GS2-OID not Krb5?!\n");
+
+ free (bufdesc.value);
#endif
maj_stat = gss_inquire_saslname_for_mech (&min_stat, NULL, NULL, NULL, NULL);
hooks/post-receive
--
GNU gss
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU gss branch, master, updated. gss-0-1-5-26-gdb66fcd,
Simon Josefsson <=