acl-plugin: fix failures in some of IPv4 test-debug testcases
Commit 1c7bf5d41737984907e8bad1dc832eb6cb1d6288 added the poisoning of the newly freed memory in debug builds, exposing a logic error in mask assignment code - it passed a pointer to within a pool to a function which might potentially expand the pool. This resulted in a failure of the test in the debug version. Fix that by making a local copy of the value before passing a pointer to it. Change-Id: I73f3670672c3d86778aad0f944d052d0480cc593 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
This commit is contained in:

committed by
Neale Ranns

parent
f7f4e399e0
commit
7fad624b09
@ -610,17 +610,17 @@ assign_mask_type_index_to_pae(acl_main_t *am, u32 lc_index, int is_ip6, applied_
|
||||
hash_ace_info_t *ace_info = vec_elt_at_index(ha->rules, pae->hash_ace_info_index);
|
||||
|
||||
ace_mask_type_entry_t *mte;
|
||||
fa_5tuple_t *mask;
|
||||
fa_5tuple_t mask;
|
||||
/*
|
||||
* Start taking base_mask associated to ace, and essentially copy it.
|
||||
* With TupleMerge we will assign a relaxed mask here.
|
||||
*/
|
||||
mte = vec_elt_at_index(am->ace_mask_type_pool, ace_info->base_mask_type_index);
|
||||
mask = &mte->mask;
|
||||
mask = mte->mask;
|
||||
if (am->use_tuple_merge)
|
||||
pae->mask_type_index = tm_assign_mask_type_index(am, mask, is_ip6, lc_index);
|
||||
pae->mask_type_index = tm_assign_mask_type_index(am, &mask, is_ip6, lc_index);
|
||||
else
|
||||
pae->mask_type_index = assign_mask_type_index(am, mask);
|
||||
pae->mask_type_index = assign_mask_type_index(am, &mask);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user