aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2023-11-29 23:43:40 -0600
committerDenis Kenzior <denkenz@gmail.com>2023-11-30 17:06:14 -0600
commitba0d35ff384081d09da0b13b996c8bad714988f2 (patch)
tree96a75d11c22b3134a4ddd63bc483a52860b96741
parent305c4113e835523a930601d9cf9fb6e85833fccf (diff)
p2p: Simplify cleanup of ies
Use an _auto_ variable to cleanup IEs allocated by p2p_build_association_req(). While here, take out unneeded L_WARN_ON since p2p_build_association_req cannot fail.
-rw-r--r--src/p2p.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/p2p.c b/src/p2p.c
index c823b2b13..b66a45cc0 100644
--- a/src/p2p.c
+++ b/src/p2p.c
@@ -1500,19 +1500,18 @@ static void p2p_try_connect_group(struct p2p_device *dev)
struct iovec ie_iov[16];
int ie_num = 0;
int r;
- struct p2p_association_req info = {};
+ struct p2p_association_req info = {
+ .capability = dev->capability,
+ .device_info = dev->device_info,
+ };
struct ie_rsn_info bss_info = {};
struct ie_rsn_info rsn_info = {};
uint8_t rsne_buf[256];
uint8_t wfd_ie[32];
+ _auto_(l_free) uint8_t *req_ie =
+ p2p_build_association_req(&info, &ie_iov[ie_num].iov_len);
- info.capability = dev->capability;
- info.device_info = dev->device_info;
-
- ie_iov[0].iov_base = p2p_build_association_req(&info,
- &ie_iov[0].iov_len);
- L_WARN_ON(!ie_iov[0].iov_base);
- ie_num = 1;
+ ie_iov[ie_num++].iov_base = req_ie;
if (dev->conn_own_wfd) {
ie_iov[ie_num].iov_base = wfd_ie;
@@ -1564,15 +1563,11 @@ static void p2p_try_connect_group(struct p2p_device *dev)
l_steal_ptr(hs);
dev->conn_retry_count++;
-
-done:
- l_free(ie_iov[0].iov_base);
return;
error:
not_supported:
p2p_connect_failed(dev);
- goto done;
}
static void p2p_peer_provision_done(int err, struct wsc_credentials_info *creds,