From e0c308f8f2bdb81dca8316b55e3a63ddb58507bd Mon Sep 17 00:00:00 2001 From: paul-szczepanek-arm <33840200+paul-szczepanek-arm@users.noreply.github.com> Date: Fri, 9 Feb 2018 13:59:03 +0000 Subject: [PATCH] fix buffer not being moved in random number generation --- features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp b/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp index 6dc8119977..bd30d70532 100644 --- a/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp +++ b/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp @@ -583,6 +583,8 @@ ble_error_t GenericSecurityManager::get_random_data(uint8_t *buffer, size_t size random_data_t random_data; while (size) { + /* fill out the buffer by reading the random data in chunks + * and copying it until reaching the set size */ size_t copy_size = std::max(size, random_data.size()); ble_error_t ret = _pal.get_random_data(random_data); if (ret != BLE_ERROR_NONE) { @@ -590,6 +592,7 @@ ble_error_t GenericSecurityManager::get_random_data(uint8_t *buffer, size_t size } memcpy(buffer, random_data.buffer(), copy_size); size -= copy_size; + buffer += copy_size; } return BLE_ERROR_NONE;