[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45966] trunk/blender/source/blender/ blenkernel/intern/text.c: fix invalid memcpy() use in text editor ( backspace would call memcpy with overlapping source and destination).

Campbell Barton ideasman42 at gmail.com
Thu Apr 26 04:25:00 CEST 2012


Revision: 45966
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45966
Author:   campbellbarton
Date:     2012-04-26 02:24:55 +0000 (Thu, 26 Apr 2012)
Log Message:
-----------
fix invalid memcpy() use in text editor (backspace would call memcpy with overlapping source and destination).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/text.c

Modified: trunk/blender/source/blender/blenkernel/intern/text.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/text.c	2012-04-25 18:12:41 UTC (rev 45965)
+++ trunk/blender/source/blender/blenkernel/intern/text.c	2012-04-26 02:24:55 UTC (rev 45966)
@@ -2652,7 +2652,10 @@
 			} 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;




More information about the Bf-blender-cvs mailing list