aboutsummaryrefslogtreecommitdiffstats
path: root/src/fst
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2015-07-18 13:16:26 (GMT)
committerJouni Malinen <j@w1.fi>2015-07-18 14:23:55 (GMT)
commita0f04da517a5af848331fd978c1200cea28b6a33 (patch)
tree81bea8b08ab8307a9045c5ffba084eb17acba6e6 /src/fst
parent74619cc15048dbfc1d6a371fd4c00d767ea41d0b (diff)
downloadhostap-a0f04da517a5af848331fd978c1200cea28b6a33.zip
hostap-a0f04da517a5af848331fd978c1200cea28b6a33.tar.gz
hostap-a0f04da517a5af848331fd978c1200cea28b6a33.tar.bz2
FST: Mark get_mb_ie() return value const
The caller is not expected to free or modify the value since this is returning a reference to a buffer maintained by the upper layer. Signed-off-by: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'src/fst')
-rw-r--r--src/fst/fst.h2
-rw-r--r--src/fst/fst_ctrl_iface.c4
-rw-r--r--src/fst/fst_group.c31
-rw-r--r--src/fst/fst_iface.h4
-rw-r--r--src/fst/fst_session.c2
5 files changed, 22 insertions, 21 deletions
diff --git a/src/fst/fst.h b/src/fst/fst.h
index 76c3823..bfeba63 100644
--- a/src/fst/fst.h
+++ b/src/fst/fst.h
@@ -89,7 +89,7 @@ struct fst_wpa_obj {
* @addr: Address of the STA
* Returns: MB IE buffer, %NULL if no MB IE received from the STA
*/
- struct wpabuf * (*get_mb_ie)(void *ctx, const u8 *addr);
+ const struct wpabuf * (*get_mb_ie)(void *ctx, const u8 *addr);
/**
* update_mb_ie - Update last MB IE received from STA
diff --git a/src/fst/fst_ctrl_iface.c b/src/fst/fst_ctrl_iface.c
index 8fe8fb2..eefdc96 100644
--- a/src/fst/fst_ctrl_iface.c
+++ b/src/fst/fst_ctrl_iface.c
@@ -560,7 +560,7 @@ static int get_peer_mbies(const char *params, char *buf, size_t buflen)
u8 peer_addr[ETH_ALEN];
struct fst_group *g;
struct fst_iface *iface = NULL;
- struct wpabuf *mbies;
+ const struct wpabuf *mbies;
if (fst_read_next_text_param(params, ifname, sizeof(ifname), &endp) ||
!*ifname)
@@ -659,7 +659,7 @@ static const char * band_freq(enum mb_band_id band)
static int print_band(unsigned num, struct fst_iface *iface, const u8 *addr,
char *buf, size_t buflen)
{
- struct wpabuf *wpabuf;
+ const struct wpabuf *wpabuf;
enum hostapd_hw_mode hw_mode;
u8 channel;
int ret = 0;
diff --git a/src/fst/fst_group.c b/src/fst/fst_group.c
index 9718e4e..f6c7be9 100644
--- a/src/fst/fst_group.c
+++ b/src/fst/fst_group.c
@@ -314,21 +314,22 @@ fst_group_does_iface_appear_in_other_mbies(struct fst_group *g,
addr = fst_iface_get_peer_first(other, &ctx, TRUE);
for (; addr; addr = fst_iface_get_peer_next(other, &ctx, TRUE)) {
- struct wpabuf *mbies = fst_iface_get_peer_mb_ie(other, addr);
-
- if (mbies) {
- u8 other_iface_peer_addr[ETH_ALEN];
- struct fst_iface *other_new_iface =
- fst_group_get_new_iface_by_mbie_and_band_id(
- g,
- wpabuf_head(mbies), wpabuf_len(mbies),
- iface_band_id, other_iface_peer_addr);
- if (other_new_iface == iface &&
- os_memcmp(iface_addr, other_iface_peer_addr,
- ETH_ALEN)) {
- os_memcpy(peer_addr, addr, ETH_ALEN);
- return TRUE;
- }
+ const struct wpabuf *mbies;
+ u8 other_iface_peer_addr[ETH_ALEN];
+ struct fst_iface *other_new_iface;
+
+ mbies = fst_iface_get_peer_mb_ie(other, addr);
+ if (!mbies)
+ continue;
+
+ other_new_iface = fst_group_get_new_iface_by_mbie_and_band_id(
+ g, wpabuf_head(mbies), wpabuf_len(mbies),
+ iface_band_id, other_iface_peer_addr);
+ if (other_new_iface == iface &&
+ os_memcmp(iface_addr, other_iface_peer_addr,
+ ETH_ALEN) != 0) {
+ os_memcpy(peer_addr, addr, ETH_ALEN);
+ return TRUE;
}
}
diff --git a/src/fst/fst_iface.h b/src/fst/fst_iface.h
index 4ccea8e..26cb38d 100644
--- a/src/fst/fst_iface.h
+++ b/src/fst/fst_iface.h
@@ -96,8 +96,8 @@ static inline int fst_iface_send_action(struct fst_iface *i,
return i->iface_obj.send_action(i->iface_obj.ctx, addr, data);
}
-static inline struct wpabuf * fst_iface_get_peer_mb_ie(struct fst_iface *i,
- const u8 *addr)
+static inline const struct wpabuf *
+fst_iface_get_peer_mb_ie(struct fst_iface *i, const u8 *addr)
{
return i->iface_obj.get_mb_ie(i->iface_obj.ctx, addr);
}
diff --git a/src/fst/fst_session.c b/src/fst/fst_session.c
index b2f7720..6ce5e54 100644
--- a/src/fst/fst_session.c
+++ b/src/fst/fst_session.c
@@ -363,7 +363,7 @@ static void fst_session_handle_setup_request(struct fst_iface *iface,
struct fst_iface *new_iface = NULL;
struct fst_group *g;
u8 new_iface_peer_addr[ETH_ALEN];
- struct wpabuf *peer_mbies;
+ const struct wpabuf *peer_mbies;
size_t plen;
if (frame_len < IEEE80211_HDRLEN + 1 + sizeof(*req)) {