From 80c1eab64df96f00cd726ea2fe4a25ee7ecfe6ba Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Mon, 23 May 2022 12:49:23 +0200 Subject: [PATCH] initial package creation Signed-off-by: Toshaan Bharvani --- ...parted-add-fix-to-fix-in-script-mode.patch | 123 +++++++++++ SOURCES/0002-doc-Document-fix-flag.patch | 47 +++++ SOURCES/0003-tests-Add-tests-for-fix.patch | 135 ++++++++++++ .../0004-tests-Fix-test-t1700-probe-fs.patch | 35 ++++ ...041-undetected-in-use-16th-partition.patch | 33 +++ ...bparted-Fix-fd-check-in-_flush_cache.patch | 26 +++ ...tential-memory-leak-in-sdmmc_get_pro.patch | 38 ++++ ...copy-paste-error-in-HFS-journal-code.patch | 34 +++ ...rted-Fix-end_input-leak-in-do_mkpart.patch | 53 +++++ ...arted-Free-tmp-usage-inside-do_print.patch | 25 +++ ...ed-Fix-memory-leaks-in-do_resizepart.patch | 43 ++++ ...rning-about-buffer-size-in-Atari-lab.patch | 57 +++++ ...x-potential-memory-leak-in-gpt_write.patch | 44 ++++ ...-around-a-mkswap-bug-by-using-dev-ze.patch | 34 +++ ...dev-zero-for-temporary-file-and-mksw.patch | 46 ++++ SOURCES/pubkey.brian.lane | 108 ++++++++++ SOURCES/pubkey.phillip.susi | 153 ++++++++++++++ SPECS/parted.spec | 198 ++++++++++++++++++ 18 files changed, 1232 insertions(+) create mode 100644 SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch create mode 100644 SOURCES/0002-doc-Document-fix-flag.patch create mode 100644 SOURCES/0003-tests-Add-tests-for-fix.patch create mode 100644 SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch create mode 100644 SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch create mode 100644 SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch create mode 100644 SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch create mode 100644 SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch create mode 100644 SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch create mode 100644 SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch create mode 100644 SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch create mode 100644 SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch create mode 100644 SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch create mode 100644 SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch create mode 100644 SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch create mode 100644 SOURCES/pubkey.brian.lane create mode 100644 SOURCES/pubkey.phillip.susi create mode 100644 SPECS/parted.spec diff --git a/SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch b/SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch new file mode 100644 index 0000000..be907eb --- /dev/null +++ b/SOURCES/0001-parted-add-fix-to-fix-in-script-mode.patch @@ -0,0 +1,123 @@ +From 7c9a96209af2b84e1eec98ad3527f82ddd966cdf Mon Sep 17 00:00:00 2001 +From: Cristian Klein +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 +--- + 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] [DEVICE [COMMAND [PARAMETERS]]...]\n"), ++ _("Usage: %s [-hlmsfv] [-a] [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 + diff --git a/SOURCES/0002-doc-Document-fix-flag.patch b/SOURCES/0002-doc-Document-fix-flag.patch new file mode 100644 index 0000000..0961dda --- /dev/null +++ b/SOURCES/0002-doc-Document-fix-flag.patch @@ -0,0 +1,47 @@ +From 8aa569aa60c37526a8c37b06e88a833745a7a6ef Mon Sep 17 00:00:00 2001 +From: Cristian Klein +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 +--- + 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 + diff --git a/SOURCES/0003-tests-Add-tests-for-fix.patch b/SOURCES/0003-tests-Add-tests-for-fix.patch new file mode 100644 index 0000000..4fe4ef9 --- /dev/null +++ b/SOURCES/0003-tests-Add-tests-for-fix.patch @@ -0,0 +1,135 @@ +From 6b2c8806b42a7214d726cc2b3dac6b96013a6cce Mon Sep 17 00:00:00 2001 +From: Cristian Klein +Date: Fri, 11 Dec 2020 22:19:24 +0100 +Subject: [PATCH 3/5] tests: Add tests for --fix + +Signed-off-by: Brian C. Lane +--- + 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 . ++ ++. "${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 < 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 < 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 + diff --git a/SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch b/SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch new file mode 100644 index 0000000..d96b771 --- /dev/null +++ b/SOURCES/0004-tests-Fix-test-t1700-probe-fs.patch @@ -0,0 +1,35 @@ +From 9bb4afe61426419c8bb83a25aa9822e00611c8f3 Mon Sep 17 00:00:00 2001 +From: Cristian Klein +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 +--- + 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 + diff --git a/SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch b/SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch new file mode 100644 index 0000000..a998543 --- /dev/null +++ b/SOURCES/0005-tests-Fix-t9041-undetected-in-use-16th-partition.patch @@ -0,0 +1,33 @@ +From 6ed9c9e82ea6cfbee93a47e82e92a90abdb82343 Mon Sep 17 00:00:00 2001 +From: Cristian Klein +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 +--- + 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 + diff --git a/SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch b/SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch new file mode 100644 index 0000000..ab81467 --- /dev/null +++ b/SOURCES/0006-libparted-Fix-fd-check-in-_flush_cache.patch @@ -0,0 +1,26 @@ +From dacdfc20957d92eff7a3c9fd72baa849b45485e3 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch b/SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch new file mode 100644 index 0000000..4da211b --- /dev/null +++ b/SOURCES/0007-libparted-Fix-potential-memory-leak-in-sdmmc_get_pro.patch @@ -0,0 +1,38 @@ +From 8e6976661409d7c87b1f0a80ebdddc450b4db2dd Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch b/SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch new file mode 100644 index 0000000..3965a91 --- /dev/null +++ b/SOURCES/0008-fs-Fix-copy-paste-error-in-HFS-journal-code.patch @@ -0,0 +1,34 @@ +From acb5300bfc37f8b8c217758e83a31b7ecca84f4a Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch b/SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch new file mode 100644 index 0000000..9df39be --- /dev/null +++ b/SOURCES/0009-parted-Fix-end_input-leak-in-do_mkpart.patch @@ -0,0 +1,53 @@ +From 3a7f644f21703afcf7088a5994be1a6dff19f679 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch b/SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch new file mode 100644 index 0000000..d243374 --- /dev/null +++ b/SOURCES/0010-parted-Free-tmp-usage-inside-do_print.patch @@ -0,0 +1,25 @@ +From fbd83d9df7bf5fd0c830935decb9bbc482bf95f4 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch b/SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch new file mode 100644 index 0000000..24ef01f --- /dev/null +++ b/SOURCES/0011-parted-Fix-memory-leaks-in-do_resizepart.patch @@ -0,0 +1,43 @@ +From 6c4050af2c6c0abdbe1d553fdf2f19a6b600e9d1 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch b/SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch new file mode 100644 index 0000000..b7cd8e3 --- /dev/null +++ b/SOURCES/0012-libparted-Fix-warning-about-buffer-size-in-Atari-lab.patch @@ -0,0 +1,57 @@ +From 86594612f8ae4dbc416e3cd1bc8bb05445df09e5 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch b/SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch new file mode 100644 index 0000000..1164a27 --- /dev/null +++ b/SOURCES/0013-libparted-Fix-potential-memory-leak-in-gpt_write.patch @@ -0,0 +1,44 @@ +From 16751493376db612abcceae5ae81fd798c0a4d18 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch b/SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch new file mode 100644 index 0000000..cc4a682 --- /dev/null +++ b/SOURCES/0014-tests-t0400-Work-around-a-mkswap-bug-by-using-dev-ze.patch @@ -0,0 +1,34 @@ +From f801496427db11cc468065dcd77d1c610c0a1047 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch b/SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch new file mode 100644 index 0000000..06e058e --- /dev/null +++ b/SOURCES/0015-tests-t9050-Use-dev-zero-for-temporary-file-and-mksw.patch @@ -0,0 +1,46 @@ +From ea1a97b57d4e84005c66bc9c05f2e7c9244b5118 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +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 + diff --git a/SOURCES/pubkey.brian.lane b/SOURCES/pubkey.brian.lane new file mode 100644 index 0000000..04ef38a --- /dev/null +++ b/SOURCES/pubkey.brian.lane @@ -0,0 +1,108 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +MupQVzWmw8NNbNuPfGmsE/s= +=a7qH +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/pubkey.phillip.susi b/SOURCES/pubkey.phillip.susi new file mode 100644 index 0000000..3e02657 --- /dev/null +++ b/SOURCES/pubkey.phillip.susi @@ -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----- diff --git a/SPECS/parted.spec b/SPECS/parted.spec new file mode 100644 index 0000000..8dec52e --- /dev/null +++ b/SPECS/parted.spec @@ -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 - 3.4-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Tue Jun 15 2021 Brian C. Lane - 3.4-5 +- Install to /usr/sbin and /usr/lib64 + Resolves: rhbz#1972346 + +* Thu Jun 10 2021 Brian C. Lane - 3.4-4 +- Fix issues that covscan classifies as important + Resolves: rhbz#1938836 +- Work around a mkswap bug + +* Fri Apr 16 2021 Mohan Boddu - 3.4-3 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Feb 03 2021 Brian C. Lane - 3.4-2 +- Add --fix support from upstream + +* Wed Jan 27 2021 Brian C. Lane - 3.4-1 +- New stable upstream release v3.4 + +* Tue Jan 26 2021 Fedora Release Engineering - 3.3.52-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 14 2020 Brian C. Lane - 3.3.52-1 +- New upstream ALPHA release v3.3.52 +- Includes all patches + +* Mon Nov 30 2020 Brian C. Lane - 3.3-8 +- Add upstream commits to fix various gcc 10 warnings (bcl) + +* Thu Nov 05 2020 Brian C. Lane - 3.3-7 +- Do not link to libselinux + +* Fri Sep 25 2020 Brian C. Lane - 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 - 3.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 14 2020 Tom Stellard - 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 - 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 - 3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 16 2019 Brian C. Lane - 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 - 3.3-1 +- New upstream release v3.3 + Includes the DASD virtio-blk fix. +- Dropping pre-3.2 changelog entries