diff options
Diffstat (limited to 'inference-engine/src/inference_engine/ie_memcpy.cpp')
-rw-r--r-- | inference-engine/src/inference_engine/ie_memcpy.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/inference-engine/src/inference_engine/ie_memcpy.cpp b/inference-engine/src/inference_engine/ie_memcpy.cpp new file mode 100644 index 000000000..330c0f268 --- /dev/null +++ b/inference-engine/src/inference_engine/ie_memcpy.cpp @@ -0,0 +1,21 @@ +// Copyright (C) 2018 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include <stdint.h> +#include <string.h> +#include "ie_memcpy.h" + +int ie_memcpy(void* dest, size_t destsz, void const* src, size_t count) { + size_t i; + if (!src || count > destsz || + count > (dest > src ? ((uintptr_t)dest - (uintptr_t)src) + : ((uintptr_t)src - (uintptr_t)dest))) { + // zero out dest if error detected + memset(dest, 0, destsz); + return -1; + } + + for (i = 0; i < count; ++i) (reinterpret_cast<uint8_t*>(dest))[i] = (reinterpret_cast<const uint8_t*>(src))[i]; + return 0; +} |