aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/eap/eap_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/sa/eap/eap_manager.c')
-rw-r--r--src/libcharon/sa/eap/eap_manager.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcharon/sa/eap/eap_manager.c b/src/libcharon/sa/eap/eap_manager.c
index ad2628393..520c0ce56 100644
--- a/src/libcharon/sa/eap/eap_manager.c
+++ b/src/libcharon/sa/eap/eap_manager.c
@@ -115,6 +115,12 @@ static bool filter_methods(uintptr_t role, eap_entry_t **entry,
{
return FALSE;
}
+ if ((*entry)->vendor == 0 &&
+ ((*entry)->type < 4 || (*entry)->type == EAP_EXPANDED ||
+ (*entry)->type > EAP_EXPERIMENTAL))
+ { /* filter invalid types */
+ return FALSE;
+ }
if (type)
{
*type = (*entry)->type;