]> git.eshelyaron.com Git - emacs.git/commitdiff
Use memmove instead of memcpy on overlapping regions
authorFredrik Bergroth <fbergroth@gmail.com>
Tue, 23 Feb 2016 11:41:16 +0000 (22:41 +1100)
committerNoam Postavsky <npostavs@gmail.com>
Fri, 15 Jul 2016 00:33:48 +0000 (20:33 -0400)
* src/editfns.c (Ftranspose_regions): Regions may overlap, so
use memmove instead of memcpy (bug#19213).

Copyright-paperwork-exempt: yes

This is a backport from trunk.
(cherry picked from commit 354f9f0fc6cc05ed98883447f9b2f37943d79160)

src/editfns.c

index 360ec12ba98426fcd6a72cccaaf21d4e10699c89..412745d551d87f43359fe300a957032a605369d9 100644 (file)
@@ -4997,7 +4997,7 @@ Transposing beyond buffer boundaries is an error.  */)
          start2_addr = BYTE_POS_ADDR (start2_byte);
           memcpy (temp, start1_addr, len1_byte);
           memcpy (start1_addr, start2_addr, len2_byte);
-          memcpy (start1_addr + len2_byte, start1_addr + len1_byte, len_mid);
+          memmove (start1_addr + len2_byte, start1_addr + len1_byte, len_mid);
           memcpy (start1_addr + len2_byte + len_mid, temp, len1_byte);
          SAFE_FREE ();