diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-04-28 13:27:17 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-04-28 13:28:40 +0200 |
commit | 02472e34179f77bdc2a6e736b13df9b41a851249 (patch) | |
tree | 20c62149d3329f8b7ca6265f17f50834638b6bdd /src/libcharon/tnc | |
parent | 68447302d62cb57f792da4e5f2f1bbf11c1c8ccb (diff) | |
download | strongswan-02472e34179f77bdc2a6e736b13df9b41a851249.tar.bz2 strongswan-02472e34179f77bdc2a6e736b13df9b41a851249.tar.xz |
do not send messages of type TNC_VENDORID_ANY or subtye TNC_SUBTYPE_ANY
Diffstat (limited to 'src/libcharon/tnc')
-rw-r--r-- | src/libcharon/tnc/tnccs/tnccs_manager.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcharon/tnc/tnccs/tnccs_manager.c b/src/libcharon/tnc/tnccs/tnccs_manager.c index 7e522b870..98a3e0be6 100644 --- a/src/libcharon/tnc/tnccs/tnccs_manager.c +++ b/src/libcharon/tnc/tnccs/tnccs_manager.c @@ -279,11 +279,23 @@ METHOD(tnccs_manager_t, send_message, TNC_Result, TNC_BufferReference msg, TNC_UInt32 msg_len, TNC_MessageType msg_type) + { enumerator_t *enumerator; tnccs_connection_entry_t *entry; tnccs_send_message_t send_message = NULL; tnccs_t *tnccs = NULL; + TNC_VendorID msg_vid; + TNC_MessageSubtype msg_subtype; + + msg_vid = (msg_type >> 8) & TNC_VENDORID_ANY; + msg_subtype = msg_type & TNC_SUBTYPE_ANY; + + if (msg_vid == TNC_VENDORID_ANY || msg_subtype == TNC_SUBTYPE_ANY) + { + DBG1(DBG_TNC, "not sending message of invalid type 0x%08x", msg_type); + return TNC_RESULT_INVALID_PARAMETER; + } this->connection_lock->read_lock(this->connection_lock); enumerator = this->connections->create_enumerator(this->connections); |