summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJes Sorensen <jsorensen@fb.com>2018-05-31 13:17:46 -0400
committerJes Sorensen <jsorensen@fb.com>2018-05-31 13:19:57 -0400
commit2dcd6492718c2921feac993aa71ed3a7c2522077 (patch)
treed288eeda86d98a361cfa3bff75fff3d16c212abe
parentc1b78589cf042221e22a014332b195b2309cb178 (diff)
downloadmdadm-2dcd6492718c2921feac993aa71ed3a7c2522077.tar.gz
super0: Use memmove() when adjusting sparc2.2 superblock data
memcpy() does not allow overlapping copies, switch to memmove() Signed-off-by: Jes Sorensen <jsorensen@fb.com>
-rw-r--r--super0.c7
1 files changed, 4 insertions, 3 deletions
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);