From 2f74471dd96382521c57e53fc99fb0df3974f7dc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 26 Apr 2012 02:24:55 +0000 Subject: fix invalid memcpy() use in text editor (backspace would call memcpy with overlapping source and destination). --- source/blender/blenkernel/intern/text.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/text.c') diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index a7e49dd7fc8..1197ec23907 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -2652,7 +2652,10 @@ void txt_backspace_char (Text *text) } while (mrk && mrk->lineno==lineno); } - memcpy(text->curl->line + text->curc - c_len, text->curl->line + text->curc, text->curl->len-text->curc+1); + /* source and destination overlap, don't use memcpy() */ + memmove(text->curl->line + text->curc - c_len, + text->curl->line + text->curc, + text->curl->len - text->curc + 1); text->curl->len-= c_len; text->curc-= c_len; -- cgit v1.2.3