]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
super-intel: Do not truncate last character of volume name
authorJes Sorensen <jsorensen@fb.com>
Wed, 30 May 2018 16:10:13 +0000 (12:10 -0400)
committerJes Sorensen <jsorensen@fb.com>
Wed, 30 May 2018 16:10:13 +0000 (12:10 -0400)
Clear up strncpy abuse to avoid gcc-8.1 complaining about truncating
the string.

Signed-off-by: Jes Sorensen <jsorensen@fb.com>
super-intel.c

index 520d29217f409dbb495ed42b69f76439e8128d1a..aa93a9e9238f877e5099ee3c4ef3246e0d0ee6ce 100644 (file)
@@ -7587,11 +7587,12 @@ static int update_subarray_imsm(struct supertype *st, char *subarray,
                        append_metadata_update(st, u, sizeof(*u));
                } else {
                        struct imsm_dev *dev;
-                       int i;
+                       int i, namelen;
 
                        dev = get_imsm_dev(super, vol);
-                       strncpy((char *) dev->volume, name, MAX_RAID_SERIAL_LEN);
-                       dev->volume[MAX_RAID_SERIAL_LEN-1] = '\0';
+                       memset(dev->volume, '\0', MAX_RAID_SERIAL_LEN);
+                       namelen = min((int)strlen(name), MAX_RAID_SERIAL_LEN);
+                       memcpy(dev->volume, name, namelen);
                        for (i = 0; i < mpb->num_raid_devs; i++) {
                                dev = get_imsm_dev(super, i);
                                handle_missing(super, dev);