From 1e5994b9268b2cbf9081f4af7655e9d99fc94fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Tue, 10 Jul 2018 16:14:38 +0200 Subject: [PATCH] [tree] Fix memove32 --- poincare/src/tree_pool.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/poincare/src/tree_pool.cpp b/poincare/src/tree_pool.cpp index a23188271..54838b660 100644 --- a/poincare/src/tree_pool.cpp +++ b/poincare/src/tree_pool.cpp @@ -23,7 +23,8 @@ TreeNode * TreePool::node(int identifier) const { } static void memmove32(uint32_t * dst, uint32_t * src, size_t len) { - if (dst > src) { + if (src < dst && dst < src + len) { + /* Copy backwards to avoid overwrites */ src += len; dst += len; while (len--) {