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:
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)) {