From: Jes Sorensen Date: Thu, 31 May 2018 17:17:46 +0000 (-0400) Subject: super0: Use memmove() when adjusting sparc2.2 superblock data X-Git-Tag: mdadm-4.1-rc2~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2dcd6492718c2921feac993aa71ed3a7c2522077;p=thirdparty%2Fmdadm.git super0: Use memmove() when adjusting sparc2.2 superblock data memcpy() does not allow overlapping copies, switch to memmove() Signed-off-by: Jes Sorensen --- diff --git a/super0.c b/super0.c index 756cab5e..42989b9f 100644 --- a/super0.c +++ b/super0.c @@ -520,9 +520,10 @@ static int update_super0(struct supertype *st, struct mdinfo *info, * up 4 bytes before continuing */ __u32 *sb32 = (__u32*)sb; - memcpy(sb32+MD_SB_GENERIC_CONSTANT_WORDS+7, - sb32+MD_SB_GENERIC_CONSTANT_WORDS+7+1, - (MD_SB_WORDS - (MD_SB_GENERIC_CONSTANT_WORDS+7+1))*4); + + memmove(sb32+MD_SB_GENERIC_CONSTANT_WORDS+7, + sb32+MD_SB_GENERIC_CONSTANT_WORDS+7+1, + (MD_SB_WORDS - (MD_SB_GENERIC_CONSTANT_WORDS+7+1))*4); if (verbose >= 0) pr_err("adjusting superblock of %s for 2.2/sparc compatibility.\n", devname);