diff options
author | Andrew Yourtchenko <ayourtch@gmail.com> | 2018-08-29 17:23:03 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2018-09-05 10:36:46 +0000 |
commit | 3328e9011463855b5b2d52b849cff3114d264b68 (patch) | |
tree | 03e36aacc07b8af7a4246af90e01dcb772ae7f8c /src/plugins/acl/acl.h | |
parent | 5d28c7afbc0abd172d0053768b2ebe37b7a6c348 (diff) |
acl-plugin: VPP-1400: VPP may crash when performing ACL modifications on applied ACLs
The partition_split() did not increment the refcount when using a mask type index,
thus subsequent modifications potentially resulted in double frees and in the best case
immediate crash, in the worst case delayed crash in another place.
Introduce the lock_mask_type_index() and call it, move the mask type index
related functions closer to the top of the file.
Make the assignment of the new mask type indices
for the tuplemerge case to use the assign_mask_type_index().
Keep some debugs in case we need to investigate this further at some point.
Change-Id: Iae370f5cd92e1fe1442480db34656a8a3442dbc0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 1edc406da3d4f6e63de2f278360b5753f55c00df)
Diffstat (limited to 'src/plugins/acl/acl.h')
-rw-r--r-- | src/plugins/acl/acl.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/plugins/acl/acl.h b/src/plugins/acl/acl.h index b994b8506b7..d030681ac3a 100644 --- a/src/plugins/acl/acl.h +++ b/src/plugins/acl/acl.h @@ -122,6 +122,7 @@ typedef struct CLIB_CACHE_LINE_ALIGN_MARK(cacheline0); fa_5tuple_t mask; u32 refcount; + u8 from_tm; } ace_mask_type_entry_t; typedef struct { |