From 522f29c7ccb2ac30aa107ce07f227c73eab3f944 Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 17 Apr 2019 19:23:56 +0000 Subject: Replace memcpy() calls with memmove() to avoid undefined behavior when source and destination overlap. --- generic/tclUtf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generic/tclUtf.c b/generic/tclUtf.c index 53a0fec..86d1913 100644 --- a/generic/tclUtf.c +++ b/generic/tclUtf.c @@ -1139,7 +1139,7 @@ Tcl_UtfToUpper( */ if ((len < TclUtfCount(upChar)) || ((upChar & 0xF800) == 0xD800)) { - memcpy(dst, src, len); + memmove(dst, src, len); dst += len; } else { dst += Tcl_UniCharToUtf(upChar, dst); @@ -1201,7 +1201,7 @@ Tcl_UtfToLower( */ if ((len < TclUtfCount(lowChar)) || ((lowChar & 0xF800) == 0xD800)) { - memcpy(dst, src, len); + memmove(dst, src, len); dst += len; } else { dst += Tcl_UniCharToUtf(lowChar, dst); @@ -1260,7 +1260,7 @@ Tcl_UtfToTitle( titleChar = Tcl_UniCharToTitle(titleChar); if ((len < TclUtfCount(titleChar)) || ((titleChar & 0xF800) == 0xD800)) { - memcpy(dst, src, len); + memmove(dst, src, len); dst += len; } else { dst += Tcl_UniCharToUtf(titleChar, dst); @@ -1283,7 +1283,7 @@ Tcl_UtfToTitle( } if ((len < TclUtfCount(lowChar)) || ((lowChar & 0xF800) == 0xD800)) { - memcpy(dst, src, len); + memmove(dst, src, len); dst += len; } else { dst += Tcl_UniCharToUtf(lowChar, dst); -- cgit v0.12