In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: Fix a buffer overflow in mgmtmeshadd()
Smatch Warning: net/bluetooth/mgmtutil.c:375 mgmtmeshadd() error: _memcpy() 'mesh_tx->param' too small (48 vs 50)
Analysis:
'meshtx->param' is array of size 48. This is the destination. u8 param[sizeof(struct mgmtcpmeshsend) + 29]; // 19 + 29 = 48.
But in the caller 'meshsend' we reject only when len > 50. len > (MGMTMESHSENDSIZE + 31) // 19 + 31 = 50.