Skip to content
Commit 0b3e9abb authored by Andrej Butok's avatar Andrej Butok Committed by Anas Nashif
Browse files

sys: ring_buffer: fix possible ring_buf_put_claim/get_claim wrong size



- The issue is caused by the MIN() macro, which expands to
  (a)<(b)?(a):(b), where ring_buf_space_get()/ring_buf_size_get()
  is used as 'b' and is evaluated twice. The issue occurs when
  the (a)<(b) condition evaluates such that (b) is selected,
  but the value of (b) changes between evaluations, resulting
  in a possibly larger value than (a).
- Fixes the potential incorrect behavior by storing the result
  of ring_buf_space_get()/ring_buf_size_get() in a variable
  before using it in the MIN macro.

Signed-off-by: default avatarAndrej Butok <andrey.butok@nxp.com>
parent 87ecedf2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment