2.36-2: #1860461 - sfdisk gaps

This commit is contained in:
Karel Zak 2020-08-27 15:22:40 +02:00
parent 5aecaa99fe
commit 072774b4ff
2 changed files with 48 additions and 1 deletions

View File

@ -0,0 +1,42 @@
From 430952f254cddf1ccb47a5f8caf5b5cd64193c3a Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 10 Aug 2020 11:37:32 +0200
Subject: [PATCH] libfdisk: fix last free sector detection if partition size
specified
We need to skip useless gaps between partition if the gap is no large
enough for a new partition. Unfortunately, the current code checks
size of the gap, but does not care for location of the gap -- this is
good enough for dialog driven partitioning, but it's pretty bad if
start of the partition is explicitly specified (e.g. sfdisk).
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1860461
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libfdisk/src/dos.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c
index 176969883..890e33a26 100644
--- a/libfdisk/src/dos.c
+++ b/libfdisk/src/dos.c
@@ -1274,14 +1274,14 @@ static int add_partition(struct fdisk_context *cxt, size_t n,
fdisk_sector_t last;
rc = find_last_free(cxt, is_logical, start, limit, &last);
-
if (rc == 0 && last - start + 1 < fdisk_partition_get_size(pa)) {
DBG(LABEL, ul_debug("DOS: area <%ju,%ju> too small [wanted=%ju aval=%ju]",
(uintmax_t) start, (uintmax_t) last,
fdisk_partition_get_size(pa),
last - start));
- if (fdisk_partition_has_start(pa))
+ if (fdisk_partition_has_start(pa)
+ && fdisk_partition_get_start(pa) <= last)
rc = -ENOSPC;
else {
start = last + 1;
--
2.25.4

View File

@ -2,7 +2,7 @@
Summary: A collection of basic system utilities
Name: util-linux
Version: 2.36
Release: 2%{?dist}
Release: 3%{?dist}
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
URL: http://en.wikipedia.org/wiki/Util-linux
@ -101,6 +101,8 @@ Requires: libfdisk = %{version}-%{release}
###
# 151635 - makeing /var/log/lastlog
Patch0: 2.36-login-lastlog-create.patch
# 1860461 - sfdisk regression creating simple 3 partition MBR disk
Patch1: 0001-libfdisk-fix-last-free-sector-detection-if-partition.patch
%description
The util-linux package contains a large variety of low-level system
@ -933,6 +935,9 @@ fi
%{_libdir}/python*/site-packages/libmount/
%changelog
* Thu Aug 27 2020 Karel Zak <kzak@redhat.com> - 2.36-3
- fix #1860461 - sfdisk regression creating simple 3 partition MBR disk
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.36-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild