net: buf: Clear user_data on allocation
For two reasons: - prevent exposing the previous user's info to the new user - make NULL checks on user_data work Since we don't really have a field that specifies what part of the user_data array is valid, we have to rely on other checks. Such a check, if user_data contains a callback, is comparing against NULL before calling said callback. Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
This commit is contained in:
parent
1c28ded7c3
commit
6a3602a306
2 changed files with 2 additions and 1 deletions
|
|
@ -1049,7 +1049,7 @@ struct net_buf {
|
||||||
/** @endcond */
|
/** @endcond */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** System metadata for this buffer. */
|
/** System metadata for this buffer. Cleared on allocation. */
|
||||||
uint8_t user_data[] __net_buf_align;
|
uint8_t user_data[] __net_buf_align;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -338,6 +338,7 @@ success:
|
||||||
buf->flags = 0U;
|
buf->flags = 0U;
|
||||||
buf->frags = NULL;
|
buf->frags = NULL;
|
||||||
buf->size = size;
|
buf->size = size;
|
||||||
|
memset(buf->user_data, 0, buf->user_data_size);
|
||||||
net_buf_reset(buf);
|
net_buf_reset(buf);
|
||||||
|
|
||||||
#if defined(CONFIG_NET_BUF_POOL_USAGE)
|
#if defined(CONFIG_NET_BUF_POOL_USAGE)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue