diff options
author | Andrew Yourtchenko <ayourtch@gmail.com> | 2018-10-04 15:11:01 +0200 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2018-10-04 17:53:44 +0000 |
commit | 6f40a8a4c5792c5c5e5c77366e98b1f10370d685 (patch) | |
tree | 8c7382d588c9b8a801537b132bcbe9832d50fcef /src/vnet/ip/punt_api.c | |
parent | a44d6b133bfb7ee0fb11d6ae8d9f0f00e57f242c (diff) |
acl-plugin: tuplemerge: avoid batch-resize of the applied entries vector - VPP-1352
If the number of rules within a given partition exceeds the limit,
the split_partition() might get called, in which we calculate
the relaxed mask, create a new partition with that mask and
attempt to reallocate some entries from the overcrowded partition.
The non-TM code was pre-expanding the vector with rules by
the number of rules in the new ACL being applied - which
caused the split_partition() to iterate over the rules
filled with zeroes. Most of the time it is benign, but
if a newly created relaxed partition is such that these
entries can be "relocated", then the code attempts to
do so, which does not end well.
Change-Id: I2dbf3ccd29ff97277b21cdb11c4424ff0915c3b7
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Diffstat (limited to 'src/vnet/ip/punt_api.c')
0 files changed, 0 insertions, 0 deletions