diff options
| author | Fredrik Bergroth | 2016-02-23 22:41:16 +1100 |
|---|---|---|
| committer | Noam Postavsky | 2016-07-14 20:33:48 -0400 |
| commit | 916abe91fd250fc5ed27ec0be7d57421e7908111 (patch) | |
| tree | b7ca5adb623f0519187913f2f210cf4ab80522b8 | |
| parent | 9ba51edf62b25c678508a316ec78a09b18d3bf9e (diff) | |
| download | emacs-916abe91fd250fc5ed27ec0be7d57421e7908111.tar.gz emacs-916abe91fd250fc5ed27ec0be7d57421e7908111.zip | |
Use memmove instead of memcpy on overlapping regions
* 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)
| -rw-r--r-- | src/editfns.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/editfns.c b/src/editfns.c index 360ec12ba98..412745d551d 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -4997,7 +4997,7 @@ Transposing beyond buffer boundaries is an error. */) | |||
| 4997 | start2_addr = BYTE_POS_ADDR (start2_byte); | 4997 | start2_addr = BYTE_POS_ADDR (start2_byte); |
| 4998 | memcpy (temp, start1_addr, len1_byte); | 4998 | memcpy (temp, start1_addr, len1_byte); |
| 4999 | memcpy (start1_addr, start2_addr, len2_byte); | 4999 | memcpy (start1_addr, start2_addr, len2_byte); |
| 5000 | memcpy (start1_addr + len2_byte, start1_addr + len1_byte, len_mid); | 5000 | memmove (start1_addr + len2_byte, start1_addr + len1_byte, len_mid); |
| 5001 | memcpy (start1_addr + len2_byte + len_mid, temp, len1_byte); | 5001 | memcpy (start1_addr + len2_byte + len_mid, temp, len1_byte); |
| 5002 | SAFE_FREE (); | 5002 | SAFE_FREE (); |
| 5003 | 5003 | ||