aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-10-12 09:49:11 +0200
committerMartin Willi <martin@strongswan.org>2009-10-12 09:51:45 +0200
commit9b2942f68ddfed079be287dd09792b438244785d (patch)
treea4327df1731fb2aaafef27ddbbeeac1ebebcdb30 /src/charon
parent509f70c1324e42c283664cfc30075d2587b49672 (diff)
downloadstrongswan-9b2942f68ddfed079be287dd09792b438244785d.tar.bz2
strongswan-9b2942f68ddfed079be287dd09792b438244785d.tar.xz
Stroke plugin interprets NULL identities as ID_ANY in shared key lookup
Diffstat (limited to 'src/charon')
-rw-r--r--src/charon/plugins/stroke/stroke_cred.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/charon/plugins/stroke/stroke_cred.c b/src/charon/plugins/stroke/stroke_cred.c
index 5c981036a..fbf4507c4 100644
--- a/src/charon/plugins/stroke/stroke_cred.c
+++ b/src/charon/plugins/stroke/stroke_cred.c
@@ -220,7 +220,7 @@ static bool shared_filter(shared_data_t *data,
void **unused1, id_match_t *me,
void **unused2, id_match_t *other)
{
- id_match_t my_match, other_match;
+ id_match_t my_match = ID_MATCH_ANY, other_match = ID_MATCH_ANY;
stroke_shared_key_t *stroke = *in;
shared_key_t *shared = &stroke->shared;
@@ -229,8 +229,14 @@ static bool shared_filter(shared_data_t *data,
return FALSE;
}
- my_match = stroke->has_owner(stroke, data->me);
- other_match = stroke->has_owner(stroke, data->other);
+ if (data->me)
+ {
+ my_match = stroke->has_owner(stroke, data->me);
+ }
+ if (data->other)
+ {
+ other_match = stroke->has_owner(stroke, data->other);
+ }
if (!my_match && !other_match)
{
return FALSE;