diff options
author | Andrew Yourtchenko <ayourtch@gmail.com> | 2018-09-19 15:50:55 +0200 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2018-09-19 19:21:45 +0000 |
commit | a713254d689deee1718bb515c3961bf4ed435504 (patch) | |
tree | 49dab1298704329bb4d55f3324d9dc419ef5a46c /src/vppinfra/bihash_template.h | |
parent | 2646c80db8d3d1a3cd7555328d5a0038798f861e (diff) |
bihash template: reinstate the check for the available memory in the arena
ffb14b9554afa1e58c3657e0c91dda3135008274 has changed the semantics
of alloc_arena_next to become an offset off alloc_arena, but
in the available memory check in BV (alloc_aligned) it still treats
it as a virtual address, resulting in the check always succeeding,
thus over a prolonged period bihash arena allocator
potentially overwriting whatever is following the arena.
Change-Id: I18882c5f340ca767a389e15cca2696a0a97ef015
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Diffstat (limited to 'src/vppinfra/bihash_template.h')
-rw-r--r-- | src/vppinfra/bihash_template.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vppinfra/bihash_template.h b/src/vppinfra/bihash_template.h index 6ce3da77e7f..98dcf14673f 100644 --- a/src/vppinfra/bihash_template.h +++ b/src/vppinfra/bihash_template.h @@ -95,9 +95,9 @@ STATIC_ASSERT_SIZEOF (BVT (clib_bihash_bucket), sizeof (u64)); typedef CLIB_PACKED (struct { /* * Backing store allocation. Since bihash manages its own - * freelists, we simple dole out memory at alloc_arena_next. + * freelists, we simple dole out memory starting from alloc_arena[alloc_arena_next]. */ - u64 alloc_arena_next; /* Next VA to allocate, definitely NOT a constant */ + u64 alloc_arena_next; /* Next offset from alloc_arena to allocate, definitely NOT a constant */ u64 alloc_arena_size; /* Size of the arena */ /* Two SVM pointers stored as 8-byte integers */ u64 alloc_lock_as_u64; |