In certain circumstances, reception of PB-ADV messages may trigger
session close. This rearrange ACKs new verified messages before
performing call-back to avoid situations where the session no longer
exists after the message has been handled.
This caused static analysis errors during provisioning, which are now
addressed.
Change-Id: I272e8066f307374c848cb78326259b49acaf4e20
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
l_info("RX: App 0x%04x -> 0x%04x : TTL 0x%02x : SEQ 0x%06x",
net_src, net_dst, net_ttl, net_seq);
- l_debug("seq:%x seq0:%x", net_seq, net_seqZero);
if (net_ctl) {
l_debug("CTL - %4.4x RX", net_seqZero);
if (net_opcode == NET_OP_SEG_ACKNOWLEDGE) {
uint8_t type;
bool first;
- if (!session || pb_session != session)
+ if (!pb_session || pb_session != session)
return;
link_id = l_get_be32(pkt + 1);
return;
}
+ send_ack(session, session->peer_trans_num);
+
if (session->last_peer_trans_num != session->peer_trans_num) {
session->got_segs = 0;
+ session->last_peer_trans_num = session->peer_trans_num;
session->rx_cb(session->user_data, session->sar,
session->exp_len);
}
-
- session->last_peer_trans_num = session->peer_trans_num;
- send_ack(session, session->last_peer_trans_num);
}
}