projects
/
mech_eap.orig
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove debugging statement
[mech_eap.orig]
/
inquire_cred_by_oid.c
diff --git
a/inquire_cred_by_oid.c
b/inquire_cred_by_oid.c
index
4d42b08
..
b4a95f8
100644
(file)
--- a/
inquire_cred_by_oid.c
+++ b/
inquire_cred_by_oid.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 201
0
, JANET(UK)
+ * Copyright (c) 201
1
, JANET(UK)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@
-30,6
+30,10
@@
* SUCH DAMAGE.
*/
* SUCH DAMAGE.
*/
+/*
+ * Return extended credential handle properties.
+ */
+
#include "gssapiP_eap.h"
static struct {
#include "gssapiP_eap.h"
static struct {
@@
-45,11
+49,21
@@
gss_inquire_cred_by_oid(OM_uint32 *minor,
const gss_OID desired_object,
gss_buffer_set_t *data_set)
{
const gss_OID desired_object,
gss_buffer_set_t *data_set)
{
- OM_uint32 major
= GSS_S_UNAVAILABLE
;
+ OM_uint32 major;
int i;
*data_set = GSS_C_NO_BUFFER_SET;
int i;
*data_set = GSS_C_NO_BUFFER_SET;
+ if (cred_handle == GSS_C_NO_CREDENTIAL) {
+ *minor = EINVAL;
+ return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CRED;
+ }
+
+ GSSEAP_MUTEX_LOCK(&cred_handle->mutex);
+
+ major = GSS_S_UNAVAILABLE;
+ *minor = GSSEAP_BAD_CRED_OPTION;
+
for (i = 0; i < sizeof(inquireCredOps) / sizeof(inquireCredOps[0]); i++) {
if (oidEqual(&inquireCredOps[i].oid, desired_object)) {
major = (*inquireCredOps[i].inquire)(minor, cred_handle,
for (i = 0; i < sizeof(inquireCredOps) / sizeof(inquireCredOps[0]); i++) {
if (oidEqual(&inquireCredOps[i].oid, desired_object)) {
major = (*inquireCredOps[i].inquire)(minor, cred_handle,
@@
-58,5
+72,7
@@
gss_inquire_cred_by_oid(OM_uint32 *minor,
}
}
}
}
+ GSSEAP_MUTEX_UNLOCK(&cred_handle->mutex);
+
return major;
}
return major;
}