isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 0840026a4b41600ad74717bf7b26ab4185ed7121
parent 95276cd9672e7416265357303fd9db496ac01608
Author: Dmitrij D. Czarkoff <czarkoff@gmail.com>
Date:   Fri,  3 Apr 2015 22:38:46 +0200

fix crash in maildir_set_msg_flags()

memcpy(3)'s behavior is undefined when source and destination addresses
overlap, and it actually crashed on OpenBSD. use memmove() instead.

Diffstat:
Msrc/drv_maildir.c | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/drv_maildir.c b/src/drv_maildir.c @@ -1464,7 +1464,7 @@ maildir_set_msg_flags( store_t *gctx, message_t *gmsg, int uid ATTR_UNUSED, int for (i = 0; i < as(Flags); i++) { if ((p = strchr( s, Flags[i] ))) { if (del & (1 << i)) { - memcpy( p, p + 1, fl - (p - s) ); + memmove( p, p + 1, fl - (p - s) ); fl--; } } else if (add & (1 << i)) {