summaryrefslogtreecommitdiff
path: root/libparted/arch/linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'libparted/arch/linux.c')
-rw-r--r--libparted/arch/linux.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index 7e86b51..4c778ea 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -2582,9 +2582,12 @@ _blkpg_add_partition (PedDisk* disk, const PedPartition *part)
linux_part.length = part->geom.length * disk->dev->sector_size;
}
linux_part.pno = part->num;
- strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH);
- if (vol_name)
- strncpy (linux_part.volname, vol_name, BLKPG_VOLNAMELTH);
+ strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH-1);
+ linux_part.devname[BLKPG_DEVNAMELTH-1] = '\0';
+ if (vol_name) {
+ strncpy (linux_part.volname, vol_name, BLKPG_VOLNAMELTH-1);
+ linux_part.volname[BLKPG_VOLNAMELTH-1] = '\0';
+ }
free (dev_name);
@@ -2640,7 +2643,8 @@ static int _blkpg_resize_partition (PedDisk* disk, const PedPartition *part)
else
linux_part.length = part->geom.length * disk->dev->sector_size;
linux_part.pno = part->num;
- strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH);
+ strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH-1);
+ linux_part.devname[BLKPG_DEVNAMELTH-1] = '\0';
free (dev_name);