Raise a bus alert when IKE message body parsing fails

This commit is contained in:
Martin Willi 2012-10-08 11:19:54 +02:00
parent 2b95ab7620
commit 418f4bc7a5
3 changed files with 7 additions and 0 deletions

View File

@ -96,6 +96,9 @@ enum alert_t {
ALERT_INVALID_IKE_SPI,
/** received IKE message with invalid header, argument is message_t* */
ALERT_PARSE_ERROR_HEADER,
/** received IKE message with invalid body, argument is message_t*,
* followed by a status_t result returned by message_t.parse_body(). */
ALERT_PARSE_ERROR_BODY,
};
/**

View File

@ -1076,6 +1076,8 @@ static status_t parse_message(private_task_manager_t *this, message_t *msg)
msg->get_request(msg) ? "request" : "response",
msg->get_message_id(msg));
charon->bus->alert(charon->bus, ALERT_PARSE_ERROR_BODY, msg, status);
if (this->ike_sa->get_state(this->ike_sa) == IKE_CREATED)
{ /* invalid initiation attempt, close SA */
return DESTROY_ME;

View File

@ -1045,6 +1045,8 @@ static status_t parse_message(private_task_manager_t *this, message_t *msg)
is_request ? "request" : "response",
msg->get_message_id(msg));
charon->bus->alert(charon->bus, ALERT_PARSE_ERROR_BODY, msg, status);
if (this->ike_sa->get_state(this->ike_sa) == IKE_CREATED)
{ /* invalid initiation attempt, close SA */
return DESTROY_ME;