From b106d56a23b7435e8b699366dc2c79c759e00b1a Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Thu, 14 Aug 2014 21:18:55 +0000 Subject: [PATCH] Fixed a missing net to host conversion Added a warn message for non-standard RIDs. FossilOrigin-Name: 62c3f41ea3abd9794cb63947befdb71709c61e91b2c6b94c4236f06d19ce5759 --- src/capwap/wtpinfo_readelem_wtp_radio_info.c | 28 +++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/capwap/wtpinfo_readelem_wtp_radio_info.c b/src/capwap/wtpinfo_readelem_wtp_radio_info.c index c315569d..25f2aaf2 100644 --- a/src/capwap/wtpinfo_readelem_wtp_radio_info.c +++ b/src/capwap/wtpinfo_readelem_wtp_radio_info.c @@ -1,3 +1,23 @@ +/* + This file is part of libcapwap. + + libcapwap is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + libcapwap is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar. If not, see . + +*/ + +#include + #include "wtpinfo.h" #include "capwap_ieee80211.h" @@ -14,9 +34,15 @@ int wtpinfo_readelem_wtp_radio_info(struct wtpinfo * wtpinfo,int type,uint8_t *m return -1; } + if (*msgelem <1 || *msgelem>31){ + cw_dbg(DBG_CW_RFC,"Non-standard conform radio id, val=%d (must be between 1 to 31, See RFC 5415"); + } + + int rid=*msgelem & 0x1f; + wtpinfo->radioinfo[rid].rid=rid; - wtpinfo->radioinfo[rid].type=*(uint32_t*)(msgelem+4); + wtpinfo->radioinfo[rid].type=ntohl(*(uint32_t*)(msgelem+1)); return 1; }