Procházet zdrojové kódy

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.
Dmitrij D. Czarkoff před 10 roky
rodič
revize
0840026a4b
1 změnil soubory, kde provedl 1 přidání a 1 odebrání
  1. 1 1
      src/drv_maildir.c

+ 1 - 1
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)) {