map_rescan_msgids(): musn't ues memcpy on overlapping buffers; use memmove instead.
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 22 Jan 2012 15:18:17 +0000 (16:18 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 22 Jan 2012 15:18:17 +0000 (16:18 +0100)
citadel/modules/imap/serv_imap.c

index 7cf4bb948452460fbda6bea831e2e964c44f1c7b..5c831deb26cd64e28289bae905fef5f2647bb248 100644 (file)
@@ -406,14 +406,14 @@ void imap_rescan_msgids(void)
                                 * array.
                                 */
                                --Imap->num_msgs;
-                               memcpy(&Imap->msgids[i],
-                                      &Imap->msgids[i + 1],
-                                      (sizeof(long) *
-                                       (Imap->num_msgs - i)));
-                               memcpy(&Imap->flags[i],
-                                      &Imap->flags[i + 1],
-                                      (sizeof(long) *
-                                       (Imap->num_msgs - i)));
+                               memmove(&Imap->msgids[i],
+                                       &Imap->msgids[i + 1],
+                                       (sizeof(long) *
+                                        (Imap->num_msgs - i)));
+                               memmove(&Imap->flags[i],
+                                       &Imap->flags[i + 1],
+                                       (sizeof(long) *
+                                        (Imap->num_msgs - i)));
 
                                --i;
                        }