projects
/
moonshot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
166296e
)
correct importing of partial attribute contexts
author
Luke Howard
<lukeh@padl.com>
Mon, 28 Mar 2011 22:59:17 +0000
(09:59 +1100)
committer
Luke Howard
<lukeh@padl.com>
Mon, 28 Mar 2011 22:59:17 +0000
(09:59 +1100)
mech_eap/import_sec_context.c
patch
|
blob
|
history
diff --git
a/mech_eap/import_sec_context.c
b/mech_eap/import_sec_context.c
index
7f81b40
..
978970a
100644
(file)
--- a/
mech_eap/import_sec_context.c
+++ b/
mech_eap/import_sec_context.c
@@
-58,7
+58,15
@@
importPartialRadiusContext(OM_uint32 *minor,
unsigned char *p = *pBuf;
size_t remain = *pRemain;
gss_buffer_desc buf;
unsigned char *p = *pBuf;
size_t remain = *pRemain;
gss_buffer_desc buf;
- size_t serverLen;
+ size_t ctxLength, serverLen;
+
+ /* Length of partial RADIUS context */
+ CHECK_REMAIN(4);
+ ctxLength = load_uint32_be(p);
+ UPDATE_REMAIN(4);
+
+ CHECK_REMAIN(ctxLength);
+ remain = ctxLength; /* check against partial context length */
/* Selected RADIUS server */
CHECK_REMAIN(4);
/* Selected RADIUS server */
CHECK_REMAIN(4);
@@
-96,8
+104,12
@@
importPartialRadiusContext(OM_uint32 *minor,
UPDATE_REMAIN(buf.length);
}
UPDATE_REMAIN(buf.length);
}
+#ifdef GSSEAP_DEBUG
+ assert(remain == 0);
+#endif
+
*pBuf = p;
*pBuf = p;
- *pRemain
= remain
;
+ *pRemain
-= 4 + ctxLength
;
return GSS_S_COMPLETE;
}
return GSS_S_COMPLETE;
}
@@
-261,7
+273,7
@@
importConversation(OM_uint32 *minor,
return GSS_S_COMPLETE;
}
return GSS_S_COMPLETE;
}
-
static
OM_uint32
+OM_uint32
gssEapImportContext(OM_uint32 *minor,
gss_buffer_t token,
gss_ctx_id_t ctx)
gssEapImportContext(OM_uint32 *minor,
gss_buffer_t token,
gss_ctx_id_t ctx)