commit 0840026a4b41600ad74717bf7b26ab4185ed7121
Author:     Dmitrij D. Czarkoff <czark...@gmail.com>
AuthorDate: Fri Apr 3 22:38:46 2015 +0200
Commit:     Oswald Buddenhagen <o...@users.sf.net>
CommitDate: Sat Apr 4 10:46:14 2015 +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.

 src/drv_maildir.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/drv_maildir.c b/src/drv_maildir.c
index 045dd9c..98e1687 100644
--- 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)) {

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to