diff options
author | Tobias Brunner <tobias@strongswan.org> | 2008-03-27 10:17:29 +0000 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2008-03-27 10:17:29 +0000 |
commit | 54150b3f13d71e9f126c7c68546905632793c90a (patch) | |
tree | 1220b1a877973e1034c2cf823cdd54a6c56e1ae0 /src | |
parent | b0dee635d23d969b76537b37ec20a715b5f76adf (diff) | |
download | strongswan-54150b3f13d71e9f126c7c68546905632793c90a.tar.bz2 strongswan-54150b3f13d71e9f126c7c68546905632793c90a.tar.xz |
checking the size of ME_* notify payloads
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/encoding/payloads/notify_payload.c | 22 | ||||
-rw-r--r-- | src/charon/sa/tasks/ike_me.c | 9 |
2 files changed, 22 insertions, 9 deletions
diff --git a/src/charon/encoding/payloads/notify_payload.c b/src/charon/encoding/payloads/notify_payload.c index a893ab42a..239190149 100644 --- a/src/charon/encoding/payloads/notify_payload.c +++ b/src/charon/encoding/payloads/notify_payload.c @@ -332,7 +332,27 @@ static status_t verify(private_notify_payload_t *this) } break; } - /* FIXME: check size of IKE-ME payloads */ + case ME_ENDPOINT: + if (this->notification_data.len != 12 || + this->notification_data.len != 24) + { + bad_length = TRUE; + } + break; + case ME_CONNECTID: + if (this->notification_data.len < 4 || + this->notification_data.len > 16) + { + bad_length = TRUE; + } + break; + case ME_CONNECTKEY: + if (this->notification_data.len < 16 || + this->notification_data.len > 32) + { + bad_length = TRUE; + } + break; default: /* TODO: verify */ break; diff --git a/src/charon/sa/tasks/ike_me.c b/src/charon/sa/tasks/ike_me.c index 64741c6ba..2d6862dc3 100644 --- a/src/charon/sa/tasks/ike_me.c +++ b/src/charon/sa/tasks/ike_me.c @@ -26,16 +26,9 @@ #include <encoding/payloads/endpoint_notify.h> #include <processing/jobs/mediation_job.h> -#define ME_CONNECTID_LEN 8 +#define ME_CONNECTID_LEN 4 #define ME_CONNECTKEY_LEN 16 -/* FIXME: proposed values */ -#define ME_CONNECTID_MIN_LEN 4 -#define ME_CONNECTID_MAX_LEN 16 -#define ME_CONNECTKEY_MIN_LEN 8 -#define ME_CONNECTKEY_MAX_LEN 64 - - typedef struct private_ike_me_t private_ike_me_t; /** |