mesh: Fix the wrong way to detect the trailing space.

Assignment n bytes to link.rx.buf->om_len will lead to
n bytes decrease of OS_MBUF_TRAILINGSPACE(link.rx.buf),
so we should get the OS_MBUF_TRAILINGSPACE(link.rx.buf)
before assignment net_buf_simple_pull_be16(buf) to
link.rx.buf->om_len.
This commit is contained in:
banzhuan
2018-10-06 11:30:44 +08:00
parent 9152940944
commit 2403d8a285
+3 -1
View File
@@ -1375,6 +1375,8 @@ static void gen_prov_ack(struct prov_rx *rx, struct os_mbuf *buf)
static void gen_prov_start(struct prov_rx *rx, struct os_mbuf *buf)
{
u16_t trailing_space = 0;
if (link.rx.seg) {
BT_WARN("Got Start while there are unreceived segments");
return;
@@ -1386,7 +1388,7 @@ static void gen_prov_start(struct prov_rx *rx, struct os_mbuf *buf)
return;
}
u16_t trailing_space = OS_MBUF_TRAILINGSPACE(link.rx.buf);
trailing_space = OS_MBUF_TRAILINGSPACE(link.rx.buf);
link.rx.buf->om_len = net_buf_simple_pull_be16(buf);
link.rx.id = rx->xact_id;