diff --git a/src/p2p.c b/src/p2p.c index 5d96e682..c823b2b1 100644 --- a/src/p2p.c +++ b/src/p2p.c @@ -1496,7 +1496,7 @@ static void p2p_handshake_event(struct handshake_state *hs, static void p2p_try_connect_group(struct p2p_device *dev) { struct scan_bss *bss = dev->conn_wsc_bss; - struct handshake_state *hs = NULL; + _auto_(handshake_state_free) struct handshake_state *hs = NULL; struct iovec ie_iov[16]; int ie_num = 0; int r; @@ -1562,6 +1562,7 @@ static void p2p_try_connect_group(struct p2p_device *dev) goto error; } + l_steal_ptr(hs); dev->conn_retry_count++; done: @@ -1570,9 +1571,6 @@ done: error: not_supported: - if (hs) - handshake_state_free(hs); - p2p_connect_failed(dev); goto done; }