diff options
author | Karel Zak | 2019-07-22 12:09:38 +0200 |
---|---|---|
committer | Karel Zak | 2019-07-22 12:09:38 +0200 |
commit | 10c39f03a1e70cf2a4b8e0301784174ac5730251 (patch) | |
tree | 0541c00495b64f81813d8d17df92aa6b0981c572 /libfdisk | |
parent | libblkid: (drbd) fix comment formatting (diff) | |
download | kernel-qcow2-util-linux-10c39f03a1e70cf2a4b8e0301784174ac5730251.tar.gz kernel-qcow2-util-linux-10c39f03a1e70cf2a4b8e0301784174ac5730251.tar.xz kernel-qcow2-util-linux-10c39f03a1e70cf2a4b8e0301784174ac5730251.zip |
libfdisk: improve partition copy on resize
It seems pretty fragile to copy also reference counting and reference
to table list.
Addresses: https://github.com/karelzak/util-linux/pull/822
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk')
-rw-r--r-- | libfdisk/src/partition.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libfdisk/src/partition.c b/libfdisk/src/partition.c index 55ce1ca5c..80a43ffde 100644 --- a/libfdisk/src/partition.c +++ b/libfdisk/src/partition.c @@ -85,7 +85,13 @@ static struct fdisk_partition *__copy_partition(struct fdisk_partition *o) if (!n) return NULL; + memcpy(n, o, sizeof(*n)); + + /* do not copy reference to lists, etc.*/ + n->refcount = 1; + INIT_LIST_HEAD(&n->parts); + if (n->type) fdisk_ref_parttype(n->type); if (o->name) |