vppinfra: fix clib_random_buffer_get_data caching
When using cached bytes: - do not overflow - do not return the same bytes twice Type: fix Change-Id: I2a87b47a79300e56a2201b8fc3cb6cb15b592e28 Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:
committed by
Damjan Marion
parent
1a19552eee
commit
42e2140dd9
@@ -88,7 +88,7 @@ clib_random_buffer_get_data (clib_random_buffer_t * b, uword n_bytes)
|
||||
if (n_bytes <= l)
|
||||
{
|
||||
b->n_cached_bytes = l - n_bytes;
|
||||
return &b->cached_bytes[l];
|
||||
return &b->cached_bytes[l - n_bytes];
|
||||
}
|
||||
|
||||
n_words = n_bytes / sizeof (uword);
|
||||
@@ -106,7 +106,7 @@ clib_random_buffer_get_data (clib_random_buffer_t * b, uword n_bytes)
|
||||
{
|
||||
b->cached_word = b->buffer[i];
|
||||
b->n_cached_bytes = sizeof (uword) - n_bytes;
|
||||
return b->cached_bytes;
|
||||
return &b->cached_bytes[sizeof (uword) - n_bytes];
|
||||
}
|
||||
else
|
||||
return b->buffer + i;
|
||||
|
||||
Reference in New Issue
Block a user