Browse Source

initial package creation

Signed-off-by: Toshaan Bharvani <toshaan@powerel.org>
master
Toshaan Bharvani 2 years ago
commit
80c1eab64d
  1. 123
      SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch
  2. 47
      SOURCES/0002-doc-Document-fix-flag.patch
  3. 135
      SOURCES/0003-tests-Add-tests-for-fix.patch
  4. 35
      SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch
  5. 33
      SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch
  6. 26
      SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch
  7. 38
      SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch
  8. 34
      SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch
  9. 53
      SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch
  10. 25
      SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch
  11. 43
      SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch
  12. 57
      SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch
  13. 44
      SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch
  14. 34
      SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch
  15. 46
      SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch
  16. 108
      SOURCES/pubkey.brian.lane
  17. 153
      SOURCES/pubkey.phillip.susi
  18. 198
      SPECS/parted.spec

123
SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch

@ -0,0 +1,123 @@ @@ -0,0 +1,123 @@
From 7c9a96209af2b84e1eec98ad3527f82ddd966cdf Mon Sep 17 00:00:00 2001
From: Cristian Klein <cristian.klein@elastisys.com>
Date: Fri, 11 Dec 2020 22:19:22 +0100
Subject: [PATCH 1/5] parted: add --fix to "fix" in script mode

Use-case: VMs are booted from images that are smaller than their virtual
disk. This means that -- almost by definition -- the secondary GPT
header will be "misplaced", i.e., not at the end of the virtual disk.

Without this patch, parted cannot be used for custom/exotic partitioning
when the VM boots (e.g., in cloud-init's `bootcmd`). Specifically, it
will fail as follows:

```
$ sudo parted --script /dev/vda "mkpart 2 10GB -1"
Warning: Not all of the space available to /dev/vda appears to be used,
you can fix the GPT to use all of the space (an extra 500 blocks) or continue with the current setting?
Error: Unable to satisfy all constraints on the partition.
```

This happens because, in script mode, exceptions are usually not
resolved.

This patch adds `--fix`. This allows exceptions to be automatically
resolved with Fix. As a result, the following command will work:

```
$ sudo parted --fix --script /dev/vda "mkpart 2 10GB -1"
```

Signed-off-by: Brian C. Lane <bcl@redhat.com>
---
parted/parted.c | 8 ++++++--
parted/ui.c | 7 +++++++
parted/ui.h | 1 +
3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/parted/parted.c b/parted/parted.c
index e84e66d..41edb7f 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -116,6 +116,7 @@ static struct option const options[] = {
{"list", 0, NULL, 'l'},
{"machine", 0, NULL, 'm'},
{"script", 0, NULL, 's'},
+ {"fix", 0, NULL, 'f'},
{"version", 0, NULL, 'v'},
{"align", required_argument, NULL, 'a'},
{"-pretend-input-tty", 0, NULL, PRETEND_INPUT_TTY},
@@ -127,12 +128,14 @@ static const char *const options_help [][2] = {
{"list", N_("lists partition layout on all block devices")},
{"machine", N_("displays machine parseable output")},
{"script", N_("never prompts for user intervention")},
+ {"fix", N_("in script mode, fix instead of abort when asked")},
{"version", N_("displays the version")},
{"align=[none|cyl|min|opt]", N_("alignment for new partitions")},
{NULL, NULL}
};
int opt_script_mode = 0;
+int opt_fix_mode = 0;
int pretend_input_tty = 0;
int opt_machine_mode = 0;
int disk_is_modified = 0;
@@ -2191,7 +2194,7 @@ int opt, help = 0, list = 0, version = 0, wrong = 0;
while (1)
{
- opt = getopt_long (*argc_ptr, *argv_ptr, "hlmsva:",
+ opt = getopt_long (*argc_ptr, *argv_ptr, "hlmsfva:",
options, NULL);
if (opt == -1)
break;
@@ -2201,6 +2204,7 @@ while (1)
case 'l': list = 1; break;
case 'm': opt_machine_mode = 1; break;
case 's': opt_script_mode = 1; break;
+ case 'f': opt_fix_mode = 1; break;
case 'v': version = 1; break;
case 'a':
alignment = XARGMATCH ("--align", optarg,
@@ -2217,7 +2221,7 @@ while (1)
if (wrong == 1) {
fprintf (stderr,
- _("Usage: %s [-hlmsv] [-a<align>] [DEVICE [COMMAND [PARAMETERS]]...]\n"),
+ _("Usage: %s [-hlmsfv] [-a<align>] [DEVICE [COMMAND [PARAMETERS]]...]\n"),
program_name);
return 0;
}
diff --git a/parted/ui.c b/parted/ui.c
index 973bd26..b5948d3 100644
--- a/parted/ui.c
+++ b/parted/ui.c
@@ -644,6 +644,13 @@ exception_handler (PedException* ex)
if (!option_get_next (ex->options, opt))
return opt;
+ /* script-mode and fix? */
+ int fix_is_an_option = (ex->options & PED_EXCEPTION_FIX);
+ if (opt_script_mode && opt_fix_mode && fix_is_an_option) {
+ printf ("Fixing, due to --fix\n");
+ return PED_EXCEPTION_FIX;
+ }
+
/* script-mode: don't handle the exception */
if (opt_script_mode || (!isatty (0) && !pretend_input_tty))
return PED_EXCEPTION_UNHANDLED;
diff --git a/parted/ui.h b/parted/ui.h
index 3b07782..e4e88b6 100644
--- a/parted/ui.h
+++ b/parted/ui.h
@@ -89,6 +89,7 @@ extern void print_using_dev (PedDevice* dev);
/* in parted.c */
extern int opt_script_mode;
+extern int opt_fix_mode;
extern int pretend_input_tty;
extern void print_options_help ();
--
2.26.2

47
SOURCES/0002-doc-Document-fix-flag.patch

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
From 8aa569aa60c37526a8c37b06e88a833745a7a6ef Mon Sep 17 00:00:00 2001
From: Cristian Klein <cristian.klein@elastisys.com>
Date: Fri, 11 Dec 2020 22:19:23 +0100
Subject: [PATCH 2/5] doc: Document --fix flag

Also fix copyright year, to please `make syntax-check`.

Signed-off-by: Brian C. Lane <bcl@redhat.com>
---
doc/C/parted.8 | 3 +++
doc/parted.texi | 6 ++++++
2 files changed, 9 insertions(+)

diff --git a/doc/C/parted.8 b/doc/C/parted.8
index 297c39a..d8e556e 100644
--- a/doc/C/parted.8
+++ b/doc/C/parted.8
@@ -27,6 +27,9 @@ displays machine parseable output
.B -s, --script
never prompts for user intervention
.TP
+.B -f, --fix
+automatically answer "fix" to exceptions in script mode
+.TP
.B -v, --version
displays the version
.TP
diff --git a/doc/parted.texi b/doc/parted.texi
index d89d74d..33212f0 100644
--- a/doc/parted.texi
+++ b/doc/parted.texi
@@ -406,6 +406,12 @@ display a help message
@itemx --script
never prompt the user
+@item -f
+@itemx --fix
+automatically answer exceptions with "fix" in script mode, whcih is useful for:
+GPT header not including full disk size; moving the backup GPT table to the end of the disk;
+MAC fix missing partition map entry; etc.
+
@item -a alignment-type
@itemx --align alignment-type
Set alignment for newly created partitions, valid alignment types are:
--
2.26.2

135
SOURCES/0003-tests-Add-tests-for-fix.patch

@ -0,0 +1,135 @@ @@ -0,0 +1,135 @@
From 6b2c8806b42a7214d726cc2b3dac6b96013a6cce Mon Sep 17 00:00:00 2001
From: Cristian Klein <cristian.klein@elastisys.com>
Date: Fri, 11 Dec 2020 22:19:24 +0100
Subject: [PATCH 3/5] tests: Add tests for --fix

Signed-off-by: Brian C. Lane <bcl@redhat.com>
---
tests/Makefile.am | 3 +-
tests/t9060-gpt-grow-script-fix.sh | 100 +++++++++++++++++++++++++++++
2 files changed, 102 insertions(+), 1 deletion(-)
create mode 100755 tests/t9060-gpt-grow-script-fix.sh

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0d7c022..3473e6b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -89,7 +89,8 @@ TESTS = \
t9040-many-partitions.sh \
t9041-undetected-in-use-16th-partition.sh \
t9042-dos-partition-limit.sh \
- t9050-partition-table-types.sh
+ t9050-partition-table-types.sh \
+ t9060-gpt-grow-script-fix.sh
EXTRA_DIST = \
$(TESTS) t-local.sh t-lvm.sh \
diff --git a/tests/t9060-gpt-grow-script-fix.sh b/tests/t9060-gpt-grow-script-fix.sh
new file mode 100755
index 0000000..4a3a8a9
--- /dev/null
+++ b/tests/t9060-gpt-grow-script-fix.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+# grow a gpt disk, ensure that parted offers to update the gpt size
+# do this in script mode with fix
+
+# Copyright (C) 2009-2012, 2014, 2019 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
+require_512_byte_sector_size_
+dev=loop-file
+
+ss=$sector_size_
+n_sectors=5000
+
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1
+
+# create gpt label
+parted -s $dev mklabel gpt > empty 2>&1 || fail=1
+compare /dev/null empty || fail=1
+
+# print the empty table
+parted -m -s $dev unit s print > t 2>&1 || fail=1
+sed "s,.*/$dev:,$dev:," t > out || fail=1
+
+# check for expected output
+printf "BYT;\n$dev:${n_sectors}s:file:$sector_size_:$sector_size_:gpt::;\n" \
+ > exp || fail=1
+compare exp out || fail=1
+
+# grow disk
+n_sectors=5500
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1
+
+# printing must warn, but not fix in script mode
+parted -s $dev print > out 2>&1 || fail=1
+
+# Transform the actual output, to avoid spurious differences when
+# $PWD contains a symlink-to-dir. Also, remove the ^M ...^M bogosity.
+# normalize the actual output
+mv out o2 && sed -e "s,/.*/$dev,DEVICE,;s, * ,,g;s, $,," \
+ -e "s,^.*/lt-parted: ,parted: ," o2 > out
+
+# check for expected diagnostic
+cat <<EOF > exp || fail=1
+Warning: Not all of the space available to DEVICE appears to be used, you can fix the GPT to use all of the space (an extra 500 blocks) or continue with the current setting?
+Model: (file)
+Disk DEVICE: 2816kB
+Sector size (logical/physical): 512B/512B
+Partition Table: gpt
+Disk Flags:
+
+Number Start End Size File system Name Flags
+
+EOF
+compare exp out || fail=1
+
+# now we fix
+parted --script --fix $dev print > out 2>&1 || fail=1
+
+# Transform the actual output, to avoid spurious differences when
+# $PWD contains a symlink-to-dir. Also, remove the ^M ...^M bogosity.
+# normalize the actual output
+mv out o2 && sed -e "s,/.*/$dev,DEVICE,;s, * ,,g;s, $,," \
+ -e "s,^.*/lt-parted: ,parted: ," o2 > out
+
+# check for expected diagnostic
+cat <<EOF > exp || fail=1
+Warning: Not all of the space available to DEVICE appears to be used, you can fix the GPT to use all of the space (an extra 500 blocks) or continue with the current setting?
+Fixing, due to --fix
+Model: (file)
+Disk DEVICE: 2816kB
+Sector size (logical/physical): 512B/512B
+Partition Table: gpt
+Disk Flags:
+
+Number Start End Size File system Name Flags
+
+EOF
+compare exp out || fail=1
+
+
+# Now should not warn
+
+parted -s $dev print > err 2>&1 || fail=1
+grep Warning: err > k ; mv k err
+compare /dev/null err || fail=1
+
+Exit $fail
--
2.26.2

35
SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
From 9bb4afe61426419c8bb83a25aa9822e00611c8f3 Mon Sep 17 00:00:00 2001
From: Cristian Klein <cristian.klein@elastisys.com>
Date: Fri, 11 Dec 2020 22:19:25 +0100
Subject: [PATCH 4/5] tests: Fix test t1700-probe-fs

mkfs.ext3 (see version below) was complaining that the filesystem is too small
for a journal, which made the test fail.

```
$ mkfs.ext3 -V
mke2fs 1.45.5 (07-Jan-2020)
Using EXT2FS Library version 1.45.5
```

Signed-off-by: Brian C. Lane <bcl@redhat.com>
---
tests/t1700-probe-fs.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/t1700-probe-fs.sh b/tests/t1700-probe-fs.sh
index 848d3e3..5c08e97 100755
--- a/tests/t1700-probe-fs.sh
+++ b/tests/t1700-probe-fs.sh
@@ -57,7 +57,7 @@ done
# Some features should indicate ext4 by themselves.
for feature in uninit_bg flex_bg; do
# create an ext3 file system
- dd if=/dev/null of=$dev bs=1024 seek=4096 >/dev/null || skip_ "dd failed"
+ dd if=/dev/null of=$dev bs=1024 seek=8192 >/dev/null || skip_ "dd failed"
mkfs.ext3 -F $dev >/dev/null || skip_ "mkfs.ext3 failed"
# set the feature
--
2.26.2

33
SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
From 6ed9c9e82ea6cfbee93a47e82e92a90abdb82343 Mon Sep 17 00:00:00 2001
From: Cristian Klein <cristian.klein@elastisys.com>
Date: Fri, 11 Dec 2020 22:19:26 +0100
Subject: [PATCH 5/5] tests: Fix t9041-undetected-in-use-16th-partition

Sometimes fails with:
```
+ mkfs.ext3 /dev/sda15
mke2fs 1.45.5 (07-Jan-2020)
/dev/sda15: Not enough space to build proposed filesystem while setting up superblock
```

Signed-off-by: Brian C. Lane <bcl@redhat.com>
---
tests/t9041-undetected-in-use-16th-partition.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/t9041-undetected-in-use-16th-partition.sh b/tests/t9041-undetected-in-use-16th-partition.sh
index a4a3020..129bf15 100644
--- a/tests/t9041-undetected-in-use-16th-partition.sh
+++ b/tests/t9041-undetected-in-use-16th-partition.sh
@@ -25,7 +25,7 @@ grep '^#define USE_BLKID 1' "$CONFIG_HEADER" > /dev/null ||
skip_ 'this system lacks a new-enough libblkid'
ss=$sector_size_
-partition_sectors=256 # sectors per partition
+partition_sectors=512 # sectors per partition
n_partitions=17 # how many partitions to create
start=2048 # start sector for the first partition
gpt_slop=34 # sectors at end of disk reserved for GPT
--
2.26.2

26
SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
From dacdfc20957d92eff7a3c9fd72baa849b45485e3 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:39:04 -0700
Subject: [PATCH 06/13] libparted: Fix fd check in _flush_cache

In theory open() could return 0 so the correct error value is -1.
---
libparted/arch/linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index 94ea176..9dc90b5 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -1678,7 +1678,7 @@ _flush_cache (PedDevice* dev)
break;
if (!_partition_is_mounted_by_path (name)) {
fd = open (name, WR_MODE, 0);
- if (fd > 0) {
+ if (fd > -1) {
ioctl (fd, BLKFLSBUF);
retry:
if (fsync (fd) < 0 || close (fd) < 0)
--
2.31.1

38
SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
From 8e6976661409d7c87b1f0a80ebdddc450b4db2dd Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:41:33 -0700
Subject: [PATCH 07/13] libparted: Fix potential memory leak in
sdmmc_get_product_info

---
libparted/arch/linux.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index 9dc90b5..aacc94f 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -1399,13 +1399,19 @@ static int
init_sdmmc (PedDevice* dev)
{
char id[128];
- char *type, *name;
+ char *type = NULL;
+ char *name = NULL;
if (sdmmc_get_product_info (dev, &type, &name)) {
snprintf (id, sizeof(id) - 1, "%s %s", type, name);
free (type);
free (name);
} else {
+ // One or the other may have been allocated, free it
+ if (type)
+ free(type);
+ if (name)
+ free(name);
snprintf (id, sizeof(id) - 1, "%s",
_("Generic SD/MMC Storage Card"));
}
--
2.31.1

34
SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
From acb5300bfc37f8b8c217758e83a31b7ecca84f4a Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:45:57 -0700
Subject: [PATCH 08/13] fs: Fix copy-paste error in HFS journal code

---
libparted/fs/r/hfs/journal.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libparted/fs/r/hfs/journal.c b/libparted/fs/r/hfs/journal.c
index 862d3d3..c7cd009 100644
--- a/libparted/fs/r/hfs/journal.c
+++ b/libparted/fs/r/hfs/journal.c
@@ -337,12 +337,14 @@ hfsj_replay_journal(PedFileSystem* fs)
}
jh->checksum = HFS_CPU_TO_32(cksum, is_le);
- /* The 2 following test are in the XNU Darwin source code */
- /* so I assume they're needed */
+ /* https://github.com/apple-opensource/hfs/blob/master/core/hfs_journal.c#L1167
+ * indicates that this is:
+ * wrap the start ptr if it points to the very end of the journal
+ */
if (jh->start == jh->size)
jh->start = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le);
if (jh->end == jh->size)
- jh->start = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le);
+ jh->end = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le);
if (jh->start == jh->end)
return 1;
--
2.31.1

53
SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
From 3a7f644f21703afcf7088a5994be1a6dff19f679 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:51:12 -0700
Subject: [PATCH 09/13] parted: Fix end_input leak in do_mkpart

---
parted/parted.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/parted/parted.c b/parted/parted.c
index 41edb7f..e9aa240 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -645,6 +645,7 @@ do_mkpart (PedDevice** dev, PedDisk** diskp)
char* part_name = NULL;
char *start_usr = NULL, *end_usr = NULL;
char *start_sol = NULL, *end_sol = NULL;
+ char *end_input = NULL;
if (*diskp)
disk = *diskp;
@@ -698,12 +699,10 @@ do_mkpart (PedDevice** dev, PedDisk** diskp)
if (!command_line_get_sector (_("Start?"), *dev, &start, &range_start, NULL))
goto error;
- char *end_input;
if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input))
goto error;
_adjust_end_if_iec(&start, &end, range_end, end_input);
- free(end_input);
/* processing starts here */
part = ped_partition_new (disk, part_type, fs_type, start, end);
@@ -839,6 +838,7 @@ do_mkpart (PedDevice** dev, PedDisk** diskp)
free (end_usr);
free (start_sol);
free (end_sol);
+ free(end_input);
if ((*dev)->type != PED_DEVICE_FILE)
disk_is_modified = 1;
@@ -860,6 +860,7 @@ error:
free (end_usr);
free (start_sol);
free (end_sol);
+ free(end_input);
return 0;
}
--
2.31.1

25
SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
From fbd83d9df7bf5fd0c830935decb9bbc482bf95f4 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:52:28 -0700
Subject: [PATCH 10/13] parted: Free tmp usage inside do_print

str_list_create calls gettext_to_wchar which makes a copy of it.
---
parted/parted.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/parted/parted.c b/parted/parted.c
index e9aa240..ba152c3 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -1192,6 +1192,7 @@ do_print (PedDevice** dev, PedDisk** diskp)
sprintf (tmp, "%2s ", "");
StrList *row = str_list_create (tmp, NULL);
+ free(tmp);
start = ped_unit_format (*dev, part->geom.start);
end = ped_unit_format_byte (
--
2.31.1

43
SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
From 6c4050af2c6c0abdbe1d553fdf2f19a6b600e9d1 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 10 Jun 2021 15:55:59 -0700
Subject: [PATCH 11/13] parted: Fix memory leaks in do_resizepart

---
parted/parted.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/parted/parted.c b/parted/parted.c
index ba152c3..22b5818 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -1582,7 +1582,6 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
/* Push the End value back onto the command_line, if it exists */
if (end_size) {
command_line_push_word(end_size);
- free(end_size);
}
start = part->geom.start;
@@ -1590,7 +1589,7 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input))
goto error;
_adjust_end_if_iec(&start, &end, range_end, end_input);
- free(end_input);
+
/* Do not move start of the partition */
constraint = constraint_from_start_end_fixed_start (*dev, start, range_end);
if (!ped_disk_set_partition_geom (disk, part, constraint,
@@ -1616,6 +1615,9 @@ error_destroy_constraint:
error:
if (range_end != NULL)
ped_geometry_destroy (range_end);
+ free(end_input);
+ free(end_size);
+
return rc;
}
--
2.31.1

57
SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
From 86594612f8ae4dbc416e3cd1bc8bb05445df09e5 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Fri, 11 Jun 2021 12:05:22 -0700
Subject: [PATCH 12/13] libparted: Fix warning about buffer size in Atari label

When the Atari table is empty it copies 'PARTEDATARI' into the id, and
the start and size bytes. This can be confusion, so turn it into a
union of the string and the non-empty values.
---
libparted/labels/atari.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/libparted/labels/atari.c b/libparted/labels/atari.c
index 7923487..2ac03d2 100644
--- a/libparted/labels/atari.c
+++ b/libparted/labels/atari.c
@@ -137,9 +137,14 @@ static AtariFS2PartId atr_fs2pid[] = {
struct __attribute__ ((packed)) _AtariRawPartition {
uint8_t flag; /* bit 0: active; bit 7: bootable */
- uint8_t id[3]; /* "GEM", "BGM", "XGM", ... */
- uint32_t start; /* start of partition */
- uint32_t size; /* length of partition */
+ union {
+ uint8_t empty[11]; /* Empty table */
+ struct __attribute__ ((packed)) {
+ uint8_t id[3]; /* "GEM", "BGM", "XGM", ... */
+ uint32_t start; /* start of partition */
+ uint32_t size; /* length of partition */
+ };
+ };
};
typedef struct _AtariRawPartition AtariRawPartition;
@@ -241,8 +246,8 @@ static int
atr_is_signature_entry (AtariRawPartition* part)
{
return part->flag == 0
- && !memcmp (part->id, SIGNATURE_EMPTY_TABLE,
- SIGNATURE_EMPTY_SIZE );
+ && !memcmp (part->empty, SIGNATURE_EMPTY_TABLE,
+ SIGNATURE_EMPTY_SIZE );
}
/* Set Parted signature in an AHDI entry */
@@ -250,7 +255,7 @@ static void
atr_put_signature_entry (AtariRawPartition* part)
{
part->flag = 0;
- memcpy (part->id, SIGNATURE_EMPTY_TABLE, SIGNATURE_EMPTY_SIZE);
+ memcpy (part->empty, SIGNATURE_EMPTY_TABLE, SIGNATURE_EMPTY_SIZE);
}
#define atr_part_known(part, pid_list) (atr_pid_known ((part)->id, pid_list))
--
2.31.1

44
SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
From 16751493376db612abcceae5ae81fd798c0a4d18 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Fri, 11 Jun 2021 13:43:02 -0700
Subject: [PATCH 13/13] libparted: Fix potential memory leak in gpt_write

_generate_header() can return with 1 after allocating gpt so it needs to
be freed in the error path.
---
libparted/labels/gpt.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index 93f7add..9b987c1 100644
--- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c
@@ -1292,8 +1292,10 @@ gpt_write (const PedDisk *disk)
/* Write PTH and PTEs */
/* FIXME: Caution: this code is nearly identical to what's just below. */
- if (_generate_header (disk, 0, ptes_crc, &gpt) != 0)
- goto error_free_ptes;
+ if (_generate_header (disk, 0, ptes_crc, &gpt) != 0) {
+ pth_free(gpt);
+ goto error_free_ptes;
+ }
pth_raw = pth_get_raw (disk->dev, gpt);
pth_free (gpt);
if (pth_raw == NULL)
@@ -1307,8 +1309,10 @@ gpt_write (const PedDisk *disk)
/* Write Alternate PTH & PTEs */
/* FIXME: Caution: this code is nearly identical to what's just above. */
- if (_generate_header (disk, 1, ptes_crc, &gpt) != 0)
- goto error_free_ptes;
+ if (_generate_header (disk, 1, ptes_crc, &gpt) != 0) {
+ pth_free(gpt);
+ goto error_free_ptes;
+ }
pth_raw = pth_get_raw (disk->dev, gpt);
pth_free (gpt);
if (pth_raw == NULL)
--
2.31.1

34
SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
From f801496427db11cc468065dcd77d1c610c0a1047 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Mon, 14 Jun 2021 14:23:46 -0700
Subject: [PATCH 14/15] tests: t0400 - Work around a mkswap bug by using
/dev/zero

mkswap gets stuck, in some situations, when operating on a file full of
holes (see https://bugzilla.redhat.com/show_bug.cgi?id=1971877) so work
around that by using /dev/zero instead of /dev/null
---
tests/t0400-loop-clobber-infloop.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/t0400-loop-clobber-infloop.sh b/tests/t0400-loop-clobber-infloop.sh
index 2d2190d..d05a8e0 100644
--- a/tests/t0400-loop-clobber-infloop.sh
+++ b/tests/t0400-loop-clobber-infloop.sh
@@ -22,7 +22,12 @@
N=1M
dev=loop-file
-dd if=/dev/null of=$dev bs=1 seek=$N || fail=1
+
+cleanup_() {
+ rm -f $dev;
+}
+
+dd if=/dev/zero of=$dev bs=$N count=1 || fail=1
mkswap $dev || fail=1
--
2.31.1

46
SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
From ea1a97b57d4e84005c66bc9c05f2e7c9244b5118 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Mon, 14 Jun 2021 15:04:05 -0700
Subject: [PATCH 15/15] tests: t9050 Use /dev/zero for temporary file and
mkswap

and clean up the usage a little bit by giving it a proper name and
removing the file when finished.
---
tests/t9050-partition-table-types.sh | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tests/t9050-partition-table-types.sh b/tests/t9050-partition-table-types.sh
index 57e004a..d63fa80 100755
--- a/tests/t9050-partition-table-types.sh
+++ b/tests/t9050-partition-table-types.sh
@@ -35,16 +35,22 @@ pc98
sun
mkswap
'
+N=1M
+dev=loop-file
-dd if=/dev/null of=f bs=1 seek=30M || framework_failure_
+cleanup_() {
+ rm -f $dev;
+}
+
+dd if=/dev/zero of=$dev bs=$N count=30 || framework_failure_
for i in $types; do
for j in $types; do
echo $i:$j
- case $i in mkswap) mkswap f || fail=1;;
- *) parted -s f mklabel $i || fail=1;; esac
+ case $i in mkswap) mkswap $dev || fail=1;;
+ *) parted -s $dev mklabel $i || fail=1;; esac
case $j in mkswap) continue;; esac
- parted -s f mklabel $j || fail=1
+ parted -s $dev mklabel $j || fail=1
done
done
--
2.31.1

108
SOURCES/pubkey.brian.lane

@ -0,0 +1,108 @@ @@ -0,0 +1,108 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
MupQVzWmw8NNbNuPfGmsE/s=
=a7qH
-----END PGP PUBLIC KEY BLOCK-----

153
SOURCES/pubkey.phillip.susi

@ -0,0 +1,153 @@ @@ -0,0 +1,153 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

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
J06Mmq/4oTsyCpbhLO1MtYvb45vm0/qStw==
=/VGh
-----END PGP PUBLIC KEY BLOCK-----

198
SPECS/parted.spec

@ -0,0 +1,198 @@ @@ -0,0 +1,198 @@
Summary: The GNU disk partition manipulation program
Name: parted
Version: 3.4
Release: 6%{?dist}
License: GPLv3+
URL: http://www.gnu.org/software/parted

Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
Source2: pubkey.phillip.susi
Source3: pubkey.brian.lane

# Upstream patches since v3.4 release
Patch0001: 0001-parted-add-fix-to-fix-in-script-mode.patch
Patch0002: 0002-doc-Document-fix-flag.patch
Patch0003: 0003-tests-Add-tests-for-fix.patch
Patch0004: 0004-tests-Fix-test-t1700-probe-fs.patch
Patch0005: 0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch
Patch0006: 0006-libparted-Fix-fd-check-in-_flush_cache.patch
Patch0007: 0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch
Patch0008: 0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch
Patch0009: 0009-parted-Fix-end_input-leak-in-do_mkpart.patch
Patch0010: 0010-parted-Free-tmp-usage-inside-do_print.patch
Patch0011: 0011-parted-Fix-memory-leaks-in-do_resizepart.patch
Patch0012: 0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch
Patch0013: 0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch
Patch0014: 0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch
Patch0015: 0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch

BuildRequires: gcc
BuildRequires: e2fsprogs-devel
BuildRequires: readline-devel
BuildRequires: ncurses-devel
BuildRequires: gettext-devel
BuildRequires: texinfo
BuildRequires: device-mapper-devel
BuildRequires: libuuid-devel
BuildRequires: libblkid-devel >= 2.17
BuildRequires: gnupg2
BuildRequires: git
BuildRequires: autoconf automake
BuildRequires: e2fsprogs
BuildRequires: xfsprogs
BuildRequires: dosfstools
BuildRequires: perl-Digest-CRC
BuildRequires: bc
Buildrequires: python3
BuildRequires: gperf
BuildRequires: make

# bundled gnulib library exception, as per packaging guidelines
# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
Provides: bundled(gnulib)

%description
The GNU Parted program allows you to create, destroy, resize, move,
and copy hard disk partitions. Parted can be used for creating space
for new operating systems, reorganizing disk usage, and copying data
to new hard disks.


%package devel
Summary: Files for developing apps which will manipulate disk partitions
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig

%description devel
The GNU Parted library is a set of routines for hard disk partition
manipulation. If you want to develop programs that manipulate disk
partitions and filesystems using the routines provided by the GNU
Parted library, you need to install this package.


%prep
%autosetup -S git_am
gpg2 --import %{SOURCE2} %{SOURCE3}
gpg2 --verify %{SOURCE1} %{SOURCE0}
iconv -f ISO-8859-1 -t UTF8 AUTHORS > tmp; touch -r AUTHORS tmp; mv tmp AUTHORS

%build
autoreconf
autoconf
CFLAGS="$RPM_OPT_FLAGS -Wno-unused-but-set-variable"; export CFLAGS
%configure --disable-static --disable-gcc-warnings
# Don't use rpath!
%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%make_build


%install
%{__rm} -rf %{buildroot}
%make_install

# Remove components we do not ship
%{__rm} -rf %{buildroot}%{_libdir}/*.la
%{__rm} -rf %{buildroot}%{_infodir}/dir
%{__rm} -rf %{buildroot}%{_bindir}/label
%{__rm} -rf %{buildroot}%{_bindir}/disk

%find_lang %{name}


%check
export LD_LIBRARY_PATH=$(pwd)/libparted/.libs:$(pwd)/libparted/fs/.libs
make check

%files -f %{name}.lang
%doc AUTHORS NEWS README THANKS
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_sbindir}/parted
%{_sbindir}/partprobe
%{_mandir}/man8/parted.8.gz
%{_mandir}/man8/partprobe.8.gz
%{_libdir}/libparted.so.2
%{_libdir}/libparted.so.2.0.3
%{_libdir}/libparted-fs-resize.so.0
%{_libdir}/libparted-fs-resize.so.0.0.3
%{_infodir}/parted.info.*

%files devel
%doc TODO doc/API doc/FAT
%{_includedir}/parted
%{_libdir}/libparted.so
%{_libdir}/libparted-fs-resize.so
%{_libdir}/pkgconfig/libparted.pc
%{_libdir}/pkgconfig/libparted-fs-resize.pc


%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.4-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

* Tue Jun 15 2021 Brian C. Lane <bcl@redhat.com> - 3.4-5
- Install to /usr/sbin and /usr/lib64
Resolves: rhbz#1972346

* Thu Jun 10 2021 Brian C. Lane <bcl@redhat.com> - 3.4-4
- Fix issues that covscan classifies as important
Resolves: rhbz#1938836
- Work around a mkswap bug

* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.4-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937

* Wed Feb 03 2021 Brian C. Lane <bcl@redhat.com> - 3.4-2
- Add --fix support from upstream

* Wed Jan 27 2021 Brian C. Lane <bcl@redhat.com> - 3.4-1
- New stable upstream release v3.4

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.52-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Mon Dec 14 2020 Brian C. Lane <bcl@redhat.com> - 3.3.52-1
- New upstream ALPHA release v3.3.52
- Includes all patches

* Mon Nov 30 2020 Brian C. Lane <bcl@redhat.com> - 3.3-8
- Add upstream commits to fix various gcc 10 warnings (bcl)

* Thu Nov 05 2020 Brian C. Lane <bcl@redhat.com> - 3.3-7
- Do not link to libselinux

* Fri Sep 25 2020 Brian C. Lane <bcl@redhat.com> - 3.3-6
- tests: Add a test for resizepart on a busy partition (bcl)
- parted: Preserve resizepart End when prompted for busy partition (bcl)
- tests: Add f2fs to the fs probe test (romain.perier)
- Add support for the F2FS filesystem (romain.perier)
- Removed reference to ped_file_system_create (max)

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 3.3-4
- Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
- Switch to using %%autosetup instead of %%setup and git (bcl)
- Update tests.yml to install git and simplify source usage (bgoncalv)

* Fri Mar 06 2020 Brian C. Lane <bcl@redhat.com> - 3.3-3
- Add chromeos_kernel partition flag for gpt disklabels
- Add bls_boot partition flag for msdos and gpt disklabels

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Mon Dec 16 2019 Brian C. Lane <bcl@redhat.com> - 3.3-2
- tests: Test incomplete resizepart command
- Fix end_input usage in do_resizepart
Resolves: rhbz#1701411

* Fri Oct 11 2019 Brian C. Lane <bcl@redhat.com> - 3.3-1
- New upstream release v3.3
Includes the DASD virtio-blk fix.
- Dropping pre-3.2 changelog entries
Loading…
Cancel
Save