stats: missing dimension in stat_set_simple_counter 69/29569/3
authorOle Troan <ot@cisco.com>
Wed, 21 Oct 2020 09:55:28 +0000 (11:55 +0200)
committerMatthew Smith <mgsmith@netgate.com>
Wed, 21 Oct 2020 18:58:58 +0000 (18:58 +0000)
commit65c56c83ce4e58178b5ad90a8f325692c9904381
tree606128e07913c4221bb1e867cf39aa06b80238b1
parent7ff514b32c8b41366b408acf2c535298546c6d42
stats: missing dimension in stat_set_simple_counter

A simple counter is a two dimensional array by threads and
counter index. 28017 introduced an error missing the first
dimension.

If a vector is updated at the same time as a client reads,
an invalid pointer my result. This will be caught by the
optimistic locking after copying out the data, but if
following a pointer outside of the stat segment then
the stat client would crash. Add suitable boundary checks
for access to stat memory segment.

Fixes: 7d29e320fb2855a1ddb7a6af09078b8ed636de01
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I94f124ec71d98218c4eda5d124ac5594743d93d6
src/vpp-api/client/stat_client.c
src/vpp-api/client/stat_client.h
src/vpp/stats/stat_segment.c