diff options
author | Gabriel Ganne <gabriel.ganne@enea.com> | 2017-10-24 09:58:45 +0200 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2017-11-01 10:06:19 +0000 |
commit | 53ae29e0608868be4f6a9cced21c39e72e294d0b (patch) | |
tree | 3bd13676023e9974231eb51e345a9ea6f8ef36fc /src/vnet/interface.h | |
parent | 2e2a0ebf0b3b30a8e8d0e39de5b0fdc3b82ab14c (diff) |
fix clib_mem_unaligned() invalid read
clib_mem_unaligned + zap64 casts its input as u64, computes a mask
according to the input length, and returns the casted maked value.
Therefore all the 8 Bytes of the u64 are systematically read, and
the invalid ones are discarded.
For example, for a 5-Bytes string, we will do an invalid read of size 3,
even though those 3 Bytes are never used.
This patch proposes to only read what we have at the cost of reading as
a u64 in one call, but that way, we do not trigger an invalid read
error.
Change-Id: I3e0b31c4113d9c8e53aa5fa3d3d396ec80f06a27
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Diffstat (limited to 'src/vnet/interface.h')
0 files changed, 0 insertions, 0 deletions