OSDN Git Service
Jim Meyering [Thu, 29 May 2008 18:53:08 +0000 (20:53 +0200)]
plug a blatant leak in gpt_write
* libparted/labels/gpt.c (gpt_write):
1,536 bytes in 3 blocks are definitely lost in loss record 9 of 11
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416F1B: ped_malloc (libparted.c:270)
by 0x44021F: gpt_write (gpt.c:1036)
by 0x418F9A: ped_disk_commit_to_dev (disk.c:486)
by 0x418FE0: ped_disk_commit (disk.c:509)
by 0x40AF7A: do_mklabel (parted.c:622)
by 0x40A055: command_run (command.c:139)
by 0x4121A4: non_interactive_mode (ui.c:1540)
by 0x40EED8: main (parted.c:2499)
Jim Meyering [Thu, 29 May 2008 18:47:44 +0000 (20:47 +0200)]
plug leaks in gpt_write
* libparted/labels/gpt.c (gpt_write):
6,674 bytes in 11 blocks are definitely lost...
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416F1B: ped_malloc (libparted.c:270)
by 0x43E76D: pth_new (gpt.c:289)
by 0x43E7E2: pth_new_zeroed (gpt.c:298)
by 0x43FF61: _generate_header (gpt.c:970)
by 0x440434: gpt_write (gpt.c:1074)
by 0x418F9A: ped_disk_commit_to_dev (disk.c:486)
by 0x418FE0: ped_disk_commit (disk.c:509)
by 0x40BB35: do_mkpartfs (parted.c:990)
Jim Meyering [Thu, 29 May 2008 18:38:13 +0000 (20:38 +0200)]
plug a leak in gpt_read
* libparted/labels/gpt.c (gpt_read):
7,195 bytes in 13 blocks are definitely lost...
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416F1B: ped_malloc (libparted.c:270)
by 0x43E759: pth_new (gpt.c:287)
by 0x43E83C: pth_new_from_raw (gpt.c:310)
by 0x43F329: _read_header (gpt.c:627)
by 0x43FB31: gpt_read (gpt.c:826)
by 0x41882B: ped_disk_new (disk.c:210)
by 0x40B773: do_mkpartfs (parted.c:884)
by 0x40A055: command_run (command.c:139)
Jim Meyering [Thu, 29 May 2008 17:38:09 +0000 (19:38 +0200)]
plug leak in ped_device_get_constraint
496 (208 direct, 288 indirect) bytes in 5 blocks are definitely lost...
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416EDF: ped_malloc (libparted.c:270)
by 0x41CB40: ped_geometry_new (geom.c:79)
by 0x415167: ped_device_get_constraint (device.c:438)
by 0x40B928: do_mkpartfs (parted.c:927)
by 0x40A055: command_run (command.c:139)
by 0x41217C: non_interactive_mode (ui.c:1540)
by 0x40EEB1: main (parted.c:2497)
Jim Meyering [Thu, 29 May 2008 17:36:02 +0000 (19:36 +0200)]
plug leaks in parted.c
432 (144 direct, 288 indirect) bytes in 3 blocks are definitely lost...
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416EF3: ped_malloc (libparted.c:270)
by 0x41D9D2: ped_constraint_new (constraint.c:100)
by 0x4151A4: ped_device_get_constraint (device.c:439)
by 0x40B928: do_mkpartfs (parted.c:927)
by 0x40A055: command_run (command.c:139)
by 0x41217C: non_interactive_mode (ui.c:1540)
by 0x40EEB1: main (parted.c:2497)
And another:
* parted/parted.c (do_mkpartfs): Here's one of the signatures:
288 (96 direct, 192 indirect) bytes in 2 blocks are definitely lost...
at 0x4A0739E: malloc (vg_replace_malloc.c:207)
by 0x416EF3: ped_malloc (libparted.c:270)
by 0x41D9D2: ped_constraint_new (constraint.c:100)
by 0x41DE2C: ped_constraint_intersect (constraint.c:232)
by 0x40B971: do_mkpartfs (parted.c:930)
by 0x40A055: command_run (command.c:139)
by 0x41217C: non_interactive_mode (ui.c:1540)
by 0x40EEB1: main (parted.c:2497)
* parted/parted.c (do_mkpart): Likewise for this function,
since do_mkpart is nearly identical to do_mkpartfs.
Jim Meyering [Thu, 29 May 2008 13:47:21 +0000 (15:47 +0200)]
plug a leak in ped_device_get_constraint
* libparted/device.c (ped_device_get_constraint):
512 (224 direct, 288 indirect) bytes in 6 blocks are definitely lost...
malloc (vg_replace_malloc.c:207)
ped_malloc (libparted.c:270)
ped_alignment_new (natmath.c:153)
ped_device_get_constraint (device.c:432)
do_mkpartfs (parted.c:927)
command_run (command.c:139)
non_interactive_mode (ui.c:1540)
main (parted.c:2497)
Colin Watson [Thu, 29 May 2008 20:27:13 +0000 (22:27 +0200)]
Avoid "comparison between signed and unsigned" warning from gcc.
* libparted/fs/fat/traverse.c (fat_dir_entry_get_name): Change
type of index from int to size_t.
Jim Meyering [Sun, 4 May 2008 07:55:00 +0000 (09:55 +0200)]
remove more useless "if" tests before free
* libparted/arch/gnu.c (gnu_sync):
* libparted/cs/natmath.c (ped_alignment_destroy):
* libparted/exception.c (ped_exception_catch):
* libparted/labels/dos.c (msdos_partition_destroy):
* parted/parted.c (do_mkpart, do_mkpartfs):
Jim Meyering [Sun, 4 May 2008 07:51:33 +0000 (09:51 +0200)]
Use free, not ped_free.
* libparted/libparted.c (ped_free): Remove function.
[DEBUG] (_check_dodgy_pointer): Remove function.
Global substitution:
perl -pi -e 's/\bped_free\b/free/g' $(lid -knone ped_free)
Jim Meyering [Thu, 29 May 2008 09:37:51 +0000 (11:37 +0200)]
* maint.mk: Update from coreutils.
Jim Meyering [Thu, 29 May 2008 09:21:05 +0000 (11:21 +0200)]
test for improved DOS-partition-table recognition
* tests/t2200-dos-label-recog.sh: New file.
* tests/Makefile.am (TESTS): Add t2200-dos-label-recog.sh.
Colin Watson [Wed, 28 May 2008 11:12:51 +0000 (12:12 +0100)]
bug fix: improve DOS partition table recognition
* libparted/labels/dos.c (msdos_probe): Make Parted's partition-table
recognition code use the same technique that is used by the Linux
kernel and by util-linux's fdisk. I.e., accept it whenever all four
boot indicators are 0 or 0x80, rather than using the FAT file system-
recognizing heuristic.
More analysis here:
http://thread.gmane.org/gmane.comp.gnu.parted.devel/2142/focus=2154
Reported by David Balažic here:
https://bugs.launchpad.net/ubuntu/+source/parted/+bug/232175
http://thread.gmane.org/gmane.comp.gnu.parted.devel/2142
Jim Meyering [Fri, 23 May 2008 13:58:20 +0000 (15:58 +0200)]
avoid const-related compiler warnings
* libparted/arch/linux.c (init_dasd, init_generic): Likewise.
* libparted/exception.c (type_strings, option_strings): Likewise.
(ped_exception_get_type_string, ped_exception_get_option_string):
* libparted/fs/ext2/ext2_block_relocator.c (ext2_block_relocator_flush):
* libparted/fs/ext2/ext2_mkfs.c (_set_dirent): Likewise.
* libparted/fs/fat/resize.c (ask_type): Likewise.
* libparted/fs/fat/traverse.c (fat_traverse_begin): Likewise.
* libparted/fs/fat/traverse.h (buffer_size): Likewise.
* libparted/labels/mac.c (_rawpart_cmp_type, _rawpart_cmp_name):
(_rawpart_is_partition_map, _rawpart_is_boot, _rawpart_is_driver):
(_rawpart_has_driver): Likewise.
* parted/parted.c (options, options_help, number_msg): Likewise.
(label_type_msg_start, flag_msg_start, unit_msg_start): Likewise.
(part_type_msg, fs_type_msg_start, start_end_msg, state_msg): Likewise.
(device_msg, name_msg, resize_msg_start, copyright_msg, do_print):
* parted/ui.c (prog_name, banner_msg, usage_msg, bug_msg): Likewise.
(screen_width): Likewise.
* parted/ui.h (prog_name): Likewise.
Otavio Salvador [Tue, 6 May 2008 17:09:37 +0000 (14:09 -0300)]
properly test for __s390__ and __s390x__ macros to disable O_DIRECT on that
Jim Meyering [Wed, 30 Apr 2008 16:35:44 +0000 (18:35 +0200)]
Remove useless "if" tests before free.
* libparted/arch/linux.c (_dm_add_partition): Remove useless test.
* libparted/labels/fdasd.c (fdasd_cleanup): Likewise.
* m4/o-direct.m4 (parted_FIND_USABLE_TEST_DIR): Likewise.
* parted/table.c (table_destroy): Likewise.
Jim Meyering [Tue, 29 Apr 2008 06:47:24 +0000 (08:47 +0200)]
Pass NEWS-checking part of "make syntax-check".
* NEWS: Tweak format so it passes.
* cfg.mk (old_NEWS_hash): Update MD5 checksum.
Jim Meyering [Tue, 29 Apr 2008 06:42:22 +0000 (08:42 +0200)]
Exempt a build-related script from the copyright check.
* .x-sc_GPL_version: New file.
* Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version.
Jim Meyering [Tue, 29 Apr 2008 06:39:46 +0000 (08:39 +0200)]
Turn off strcmp/STREQ check.
* cfg.mk (local-checks-to-skip): Add sc_prohibit_strcmp.
Jim Meyering [Tue, 29 Apr 2008 06:35:48 +0000 (08:35 +0200)]
* bootstrap.conf (gnulib_modules): Add useless-if-before-free.
Jim Meyering [Tue, 29 Apr 2008 06:34:52 +0000 (08:34 +0200)]
* doc/parted.texi: Update copyright dates.
Jim Meyering [Tue, 29 Apr 2008 06:27:22 +0000 (08:27 +0200)]
more updates from gnulib and coreutils
* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
* .gitignore: Add .tarball-version
* Makefile.am (EXTRA_DIST): Add .version and .prev-version.
(dist-hook): Update rule.
(gen-ChangeLog): New rule.
* maint.mk: Rename from Makefile.maint and update from coreutils.
* cfg.mk: Rename from Makefile.cfg and update from coreutils.
Jim Meyering [Tue, 29 Apr 2008 06:08:32 +0000 (08:08 +0200)]
use gnulib's gnumakefile module
* GNUmakefile: Remove from version control.
* bootstrap.conf (gnulib_modules): Add gnumakefile.
* .gitignore: Add GNUmakefile
Signed-off-by: Jim Meyering <meyering@redhat.com>
Matt Davis [Tue, 29 Apr 2008 02:56:59 +0000 (22:56 -0400)]
Corrected a few memory leaks from unallocated ped_unit_format calls.
Deallocated memory in do_print() allocated by ped_unit_format calls.
Matt Davis [Tue, 29 Apr 2008 02:28:49 +0000 (22:28 -0400)]
Corrected memory leak when displaying partition flags.
Deallocated memory allocated by partition_print_flags()
Matt Davis [Sun, 27 Apr 2008 00:31:39 +0000 (20:31 -0400)]
Corrected a small memory leak when displaying partition information
Deallocated a very small memory allocation that occurs in a for loop.
This occurred during output of partition numbers.
Otavio Salvador [Thu, 24 Apr 2008 20:46:28 +0000 (17:46 -0300)]
do not loop in case message exception has no message
The exception handler was looping when the exception had no message.
Otavio Salvador [Thu, 24 Apr 2008 18:55:47 +0000 (15:55 -0300)]
fix memory leak in exception handler
The exception handler wasn't freeing the memory when the allocated
space wasn't enough to store the error message thus leaving unmanaged
memory around.
Robert Millan [Mon, 25 Feb 2008 20:51:13 +0000 (21:51 +0100)]
Add support for GRUB / BIOS partition in GPT.
Bastian Blank [Mon, 7 Apr 2008 11:18:45 +0000 (13:18 +0200)]
Fix syntax error.
Bastian Blank [Mon, 7 Apr 2008 11:07:12 +0000 (13:07 +0200)]
Use host_cpu for s390 check.
Jim Meyering [Sun, 30 Mar 2008 12:15:26 +0000 (14:15 +0200)]
Fix a typo: s/to defragmenting/to defragment/, Remove trailing blanks.
Jim Meyering [Mon, 4 Feb 2008 07:35:17 +0000 (08:35 +0100)]
Don't write into line[-1] when line starts with a NUL byte.
* parted/ui.c (_readline): Check strlen first.
Jim Meyering [Sat, 2 Feb 2008 16:00:42 +0000 (17:00 +0100)]
dvh.c (dvh_partition_set_name): Include partition name in diagnostic.
Jim Meyering [Thu, 10 Jan 2008 13:51:56 +0000 (14:51 +0100)]
Enforce inherent limitations of dos and dvh partition table formats.
* libparted/disk.c (_check_partition): Enforce the 32-bit limitation
on a partition's starting sector number and length (in sectors).
With the usual 512-byte sector size, this limits the maximum
partition size to just under 2TB.
(_partition_max_start, _partition_max_len): New functions.
(_check_partition): Use them.
* tests/t4100-msdos-partition-limits.sh: New file. Test vs. msdos.
* tests/t4100-dvh-partition-limits.sh: New file. Test vs. dvh.
* tests/Makefile.am (TESTS): Add t4100-msdos-partition-limits.sh
and t4100-dvh-partition-limits.sh.
Jim Meyering [Sat, 2 Feb 2008 19:57:01 +0000 (20:57 +0100)]
mkpart: Don't require a DVH partition name if it's guaranteed to fail.
The mkpart command has an undocumented feature whereby it prompts for
(interactive) or requires (-s) a partition name, *regardless* of whether
it already knows the partition type (any thing but 'logical') is
incompatible with a name.
At first I was pissed and simply #if-0'd the offending code.
But in case someone is actually relying on it, I've relented, and
merely remove the prompt/requirement when the partition table type
is "dvh" and the type of the partition in question is not "logical".
* parted/parted.c (do_mkpart):
Jim Meyering [Mon, 14 Jan 2008 19:01:39 +0000 (20:01 +0100)]
Avoid new error detected by very latest gcc.
* libparted/fs/fat/traverse.c (fat_dir_entry_get_name): Don't reference
->extension[3] via a pointer into the prior ->name[8] struct member.
gcc detected the reference beyond end of name[8].
Declare first parameter to be "const".
* libparted/fs/fat/traverse.c: Update prototype.
Jim Meyering [Mon, 14 Jan 2008 17:50:54 +0000 (18:50 +0100)]
#ifdef function definitions to match uses, to avoid compiler warnings.
* parted/ui.c (mask_signal, s_sigint_handler, s_sigsegv_handler)
(s_sigfpe_handler):
Signed-off-by: Jim Meyering <meyering@redhat.com>
Jim Meyering [Mon, 14 Jan 2008 17:48:38 +0000 (18:48 +0100)]
Change two "extern inline" functions to "static inline".
* include/parted/natmath.h (ped_div_round_up): This makes
it compilable with bleeding-edge gcc.
(ped_div_round_to_nearest): Likewise.
* libparted/cs/natmath.c (ped_div_round_up, ped_div_round_to_nearest):
Remove definitions.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Jim Meyering [Mon, 17 Dec 2007 20:44:43 +0000 (21:44 +0100)]
Make inter-release --version output more useful.
Now, each unofficial build has a version "number" like 1.8.8.1.19-58dd,
which indicates that it is built using the 19th change set
(in _some_ repository) following the "v1.8.8.1" tag, and that 58dd
is a prefix of the commit SHA1.
* configure.ac: Run it to set the version.
(PED_MAJOR_VERSION): Derive from $PACKAGE_VERSION.
(PED_MINOR_VERSION): Likewise.
(PED_MICRO_VERSION): Likewise.
Remove the test that would ensure $PACKAGE_VERSION != $PED_VERSION,
now that the latter is derived from the former.
* Makefile.am (dist-hook): Arrange so that .version appears only
in distribution tarballs, never in a checked-out repository.
* .gitignore: Add .version here, too. Just in case.
* lib/.gitignore: Remove now-generated (by bootstrap) file.
* build-aux/.gitignore: Likewise.
Ensure that $(VERSION) is up to date for dist-related targets.
* GNUmakefile: Arrange to rerun autoconf, if the version reported by
git-version-gen doesn't match $(VERSION), but only for dist targets.
Jim Meyering [Tue, 18 Dec 2007 08:38:41 +0000 (09:38 +0100)]
doc/pt_BR/partprobe.8.pt_BR.po: Remove trailing space in generated file.
Jim Meyering [Tue, 18 Dec 2007 08:24:52 +0000 (09:24 +0100)]
Distribute new file: architecture.h.
libparted/Makefile.am (libparted_la_SOURCES): Add architecture.h.
Jim Meyering [Tue, 18 Dec 2007 08:22:34 +0000 (09:22 +0100)]
libparted/architecture.c: Include <config.h>.
David Cantrell [Mon, 17 Dec 2007 22:04:06 +0000 (12:04 -1000)]
Fix up the ChangeLog generation a bit.
We can just take the output of git-log.
Jim Meyering [Mon, 17 Dec 2007 20:53:58 +0000 (21:53 +0100)]
Perform ChangeLog-creation here, rather than in bootstrap,
so that the next merge will be less likely to clobber this parted-specific bit.
Jim Meyering [Mon, 17 Dec 2007 15:50:23 +0000 (16:50 +0100)]
Mention that we should be able to build with -fno-common.
Jim Meyering [Mon, 17 Dec 2007 15:42:42 +0000 (16:42 +0100)]
* bootstrap: Update from Coreutils, adapting to changes in gnulib.
Among them: now gnulib uses git for version control.
Jim Meyering [Mon, 17 Dec 2007 15:37:08 +0000 (16:37 +0100)]
* libparted/tests/disk.c (START_TEST): Remove decl of unused local.
David Cantrell [Wed, 7 Nov 2007 16:52:47 +0000 (11:52 -0500)]
Add flags for BSD disklabels (needed for Linux on Alpha)
Patch from Sergey Tikhonov from the AlphaCore project.
David Cantrell [Tue, 6 Nov 2007 20:13:54 +0000 (15:13 -0500)]
Add KNOWN ISSUES section
Add a KNOWN ISSUES section explaining that ext3 resizing does not work
and that you should use resize2fs.
David Cantrell [Tue, 6 Nov 2007 20:13:15 +0000 (15:13 -0500)]
Always define PED_DEVICE_DM
Regardless of compile time options, always define PED_DEVICE_DM.
David Cantrell [Tue, 6 Nov 2007 20:12:29 +0000 (15:12 -0500)]
Add 'xvd' to the transports array in do_print
For the parted print command, add 'xvd' to the transports array so there is
a matching string to display when we print a line for Xen virtual block
device.
Otavio Salvador [Fri, 2 Nov 2007 16:33:05 +0000 (14:33 -0200)]
Move PedArchitecture and ped_set_architecture to private
Code that works with libparted isn't suppose to need to change the
architecture where it's running and then doesn't make sense to export
it.
Two new files has been create (libparted/architecture.[hc]) that has
the PedArchitecture structure and the ped_set_architecture
implementation. All changes that were need to get it suported on all
currently available architectures has been done too.
Otavio Salvador [Fri, 2 Nov 2007 20:42:52 +0000 (18:42 -0200)]
parted/geom.h: move includes to after type definition to avoids dependency
Otavio Salvador [Fri, 2 Nov 2007 20:42:48 +0000 (18:42 -0200)]
parted/device.h: move includes to after type definition to avoids dependency
Otavio Salvador [Fri, 2 Nov 2007 16:57:32 +0000 (14:57 -0200)]
parted/filesys.h doesn't use stdio.h, parted/disk.h and parted/exception.h
Otavio Salvador [Fri, 2 Nov 2007 14:22:03 +0000 (12:22 -0200)]
parted/constraint.h needs parted/geom.h since it uses PedGeometry
Otavio Salvador [Fri, 2 Nov 2007 14:15:22 +0000 (12:15 -0200)]
parted/natmath.h needs parted/device.h since it uses PedSector
Otavio Salvador [Fri, 2 Nov 2007 14:14:36 +0000 (12:14 -0200)]
libparted/cs/natmath.c: remove inline since it's not supported by GNU99 standard
Otavio Salvador [Fri, 2 Nov 2007 13:54:42 +0000 (11:54 -0200)]
parted/device.h needs to include parted/constraint.h since it uses PedConstraint
Debarshi Ray [Fri, 2 Nov 2007 11:53:32 +0000 (17:23 +0530)]
Removing unnecessary type-casts and eerie comments.
Mark Neyhart [Mon, 29 Oct 2007 18:15:03 +0000 (10:15 -0800)]
Added information to message about ext2 incompatible features.
Modifed the message about incompatible ext2 features installed to include a
list of compatible features and to recommend the usage of tune2fs or
debugfs to remove features which are not compatible.
Otavio Salvador [Thu, 30 Aug 2007 12:52:03 +0000 (09:52 -0300)]
Really duplicate the disk instead of readd every partition
To avoid possible differences between the original disk layout and the
duplicated one, a raw copy is done. Has been identified a case[1]
where extended partitions had their positions changed due this.
1. http://bugs.debian.org/294520
The recipe[2] to reproduce the problem, on the provided URI, has been
used to produced a test and hence be sure it's not forgotten anymore.
2. http://bugs.debian.org/294520#34
The fix has been produced by Samuel Thibault <samuel.thibault@ens-lyon.org>
Benno Schulenberg [Thu, 16 Aug 2007 14:24:50 +0000 (16:24 +0200)]
Set partprobe's text domain.
* partprobe/partprobe.c (main): Set textdomain.
Jim Meyering [Mon, 13 Aug 2007 20:36:27 +0000 (22:36 +0200)]
Fix mkpart linux-swap bug: would use 0x83 rather than 0x82
* libparted/labels/bsd.c (bsd_partition_set_system): Include "misc.h".
Use is_linux_swap to test whether the type string matches.
* libparted/labels/dasd.c (dasd_read, dasd_partition_set_system): Likewise.
* libparted/labels/dos.c (msdos_partition_set_system): Likewise.
* libparted/labels/mac.c (mac_partition_set_system): Likewise.
* libparted/labels/rdb.c (amiga_partition_set_system): Likewise.
* libparted/labels/sun.c (sun_partition_set_system): Likewise.
Based on a patch by Kenneth MacDonald, from
<http://lists.gnu.org/archive/html/bug-parted/2007-07/msg00012.html>.
* libparted/labels/misc.h (is_linux_swap): New function/file.
* libparted/labels/Makefile.am (liblabels_la_SOURCES): Add misc.h.
* tests/t2100-mkswap.sh: New file, test for the above fix.
* tests/Makefile.am (TESTS): Add t2100-mkswap.sh.
Jim Meyering [Mon, 13 Aug 2007 20:41:39 +0000 (22:41 +0200)]
Don't try to avoid "free (x)" when x is NULL.
* libparted/arch/linux.c (linux_read):
Part of http://git.debian.org/?p=parted/parted.git;a=commitdiff;h=
080d3e7078
changed this:
free(diobuf);
to this:
if (diobuf)
free(diobuf);
Yet, free doesn't have any problem with NULL.
Some very old (non-POSIX) implementations did (like SunOS4),
but even for them, gnulib's lib/free.c protects us.
Signed-off-by: Jim Meyering <jim@meyering.net>
Jim Meyering [Tue, 14 Aug 2007 09:06:29 +0000 (11:06 +0200)]
Avoid test failure with dash's builtin printf.
* tests/t0100-print.sh (msdos_magic): Use more-portable octal escapes,
not hexadecimal ones.
David Cantrell [Wed, 8 Aug 2007 22:04:00 +0000 (18:04 -0400)]
Sanity check for dev, safety checks on diobuf.
Make sure diobuf is NULL before we begin and make sure it isn't NULL when
we try to free it. Throw an exception if dev is NULL and we enter this
function.
(cherry picked from commit
be2ace6e8d381fb836647234ac65d34a4a547e31)
David Cantrell [Thu, 9 Aug 2007 15:20:44 +0000 (11:20 -0400)]
Revert "History with undo and redo capabilities."
This reverts commit
3bb8494e1ed5af0a48ad0211c3219e653167854f.
David Cantrell [Wed, 8 Aug 2007 22:14:08 +0000 (18:14 -0400)]
History with undo and redo capabilities.
Author: Matt Davis <mattdavis@gmail.com>
Here is a working version of the history with undo/redo capabilities. The
idea here was based on a talk with Otavio Salvador who mentioned the concepts
from Vanni Brutto. The idea being to capture all changes and only apply them
all at once. This protects the user from performing an unwanted change. What
I did was capture all disk modifications that are committed to disk, and put
them in a list. The history manager allows the list to be traversed linearly,
so that a change can be undone, viewed in parted (print command), or reapplied
again. Nothing actually happens to the physical disk until the 'save' command
is issued.
Jim Meyering suggested that the functionality might be useful to libparted
thus most of the functionality has been moved there. The stdout displays
(printf) are placed in parted.c as the library should not do any output
printing on its own.
Three commands were added:
1) Undo : Undoes a disk modification
2) Redo : Redoes the most recent 'undone' modification
3) Save : Actually commits the list of non-undone modifications to disk
I feel a bit more testing needs to be done, but I am happy with the results
right now.
Jim Meyering [Wed, 1 Aug 2007 07:44:56 +0000 (09:44 +0200)]
Revert "If we cannot create a new PedDisk for the device we're looking at, return NULL rather than the device path."
The reverted change causes almost all tests to fail.
This reverts commit
a6f86144c0b5fd07c462e256bc7b54095c7b8e7a.
Jim Meyering [Wed, 1 Aug 2007 07:37:13 +0000 (09:37 +0200)]
Revert "Removed unused label (compiler warning)."
The label *is* used.
This reverts commit
f4bc90ac22de605ad927d2d85ba468a16bf55ae7.
David Cantrell [Tue, 31 Jul 2007 19:41:22 +0000 (15:41 -0400)]
Probe for all device-mapper devices.
Add _dm_probe_all() from Debian and patch linux_probe_all() to probe for
device-mapper devices after probing for standard devices.
(cherry picked from commit
609b7ae6d274e479027bb46c4bd10227cd921803)
David Cantrell [Tue, 31 Jul 2007 17:57:55 +0000 (13:57 -0400)]
Add the PED_DEVICE_XVD device type for Xen virtual block devices.
(cherry picked from commit
af4bea2ac854343609f3e6688bedd727ddf76ae6)
David Cantrell [Tue, 31 Jul 2007 17:58:40 +0000 (13:58 -0400)]
Detect Xen virtual block devices and identify them as such.
(cherry picked from commit
64861efcaae95f605614d5e4c6d9c35c5d5712d7)
David Cantrell [Tue, 31 Jul 2007 17:59:27 +0000 (13:59 -0400)]
If we cannot create a new PedDisk for the device we're looking at, return NULL rather than the device path.
(cherry picked from commit
865ea3d3f2eb7918b64a00825dfa44e05651e2ad)
David Cantrell [Tue, 31 Jul 2007 18:00:31 +0000 (14:00 -0400)]
When reading the DASD disk label, look at the partition flags as well as what is on the actual partition using ped_file_system_probe(). This avoids flags being set for partitions when they shouldn't be.
(cherry picked from commit
dfafc45a3775cc92d3cd89c9b35926cab23db512)
David Cantrell [Tue, 31 Jul 2007 18:06:09 +0000 (14:06 -0400)]
Removed unused label (compiler warning).
(cherry picked from commit
b43bda3134059cdacb13e1a4d0a0bee8a543cfb0)
Otavio Salvador [Fri, 27 Jul 2007 01:46:31 +0000 (22:46 -0300)]
Fix bootstrap script to support the new translationproject html files
David Cantrell [Mon, 23 Jul 2007 17:54:23 +0000 (13:54 -0400)]
Updated GPL license boilerplate.
David Cantrell [Mon, 23 Jul 2007 17:07:02 +0000 (13:07 -0400)]
Updated COPYING file to the GNU General Public License version 3. Updated boilerplate GPL text to reference version 3 of the license.
Jim Meyering [Tue, 10 Jul 2007 10:03:49 +0000 (12:03 +0200)]
Flip the switch (expected-failure -> expected-success) in tests/t3100-
resize-ext2-partion.sh, now that this bug is fixed.
Flavio Leitner [Tue, 12 Jun 2007 17:54:26 +0000 (14:54 -0300)]
Fix block state checking for realocated blocks
A busy block should be realocated and it's correct in
ext2_block_relocator_mark(), but not in ext2_metadata_push().
Signed-off-by: Flavio Leitner <flavio.leitner@gmail.com>
Signed-off-by: Jim Meyering <jim@meyering.net>
Flavio Leitner [Tue, 12 Jun 2007 17:53:20 +0000 (14:53 -0300)]
Fix block number used when checking for state
Hi there,
The ext2_bread() returns a descriptor containing a
pointer ->data representing the contents of 1 block.
In ext2_block_relocate_grow(), it reads the block bitmap from
a group descriptor representing a range of blocks:
bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]));
Then it does:
k = EXT2_GROUP_INODE_TABLE(fs->gd[i]) + fs->inodeblocks + j;
k is the absolute block number and then checks the state doing:
if (bh->data[k>>3] & _bitmap[k&7])
The k should be the offset inside of group descriptor and not
the absolute block number. Example:
. Block bitmap represents 512 blocks
. Block absolute number is 1023.
GrpDesc = Block absolute number / block bitmap size = 1
bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[GrpDesc]))
bh->data[] contains a bitmap of 512 blocks from 512-1024
relative = absolute block number % block bitmap size
relative = 1023/512 = 511
The block state is in bitmap bh->data[relative>>3] & ...
Signed-off-by: Flavio Leitner <flavio.leitner@gmail.com>
Signed-off-by: Jim Meyering <jim@meyering.net>
Michael Brennan [Tue, 10 Jul 2007 02:26:38 +0000 (04:26 +0200)]
Fix syntax error and LIBS problem in configure.ac
Make sure LIBS doesn't contain libraries that will prevent
successful compilations after libreadline has been tested.
A trailing comma generated a syntax error in the configure script.
Signed-off-by: Michael Brennan <brennan.brisad@gmail.com>
Matthew S. Harris [Sun, 8 Jul 2007 19:27:07 +0000 (12:27 -0700)]
More correct handling of the HeaderSize field in GPT labels
- Use the HeaderSize field value when determining how many bytes to
compute the CRC over.
- Don't abort if the HeaderSize field value is bigger than our struct,
since more fields may be defined in the future.
Signed-off-by: Matthew S. Harris <mharris@coruscant.(none)>
Jim Meyering [Fri, 6 Jul 2007 19:29:46 +0000 (21:29 +0200)]
Don't let the automatically-generated ChangeLog cause "make dist" failure.
* Makefile.cfg (local-checks-to-skip): Add sc_changelog.
Jim Meyering [Fri, 6 Jul 2007 11:53:39 +0000 (13:53 +0200)]
Let "make distcheck" pass once again.
* parted/strlist.c (str_list_alloc): Remove unnecessary
cast of xmalloc return value.
Michael Brennan [Fri, 6 Jul 2007 11:39:39 +0000 (13:39 +0200)]
Fix a problem where a partial read would not be handled correctly;
also change the status variable to ssize_t.
Jim Meyering [Tue, 3 Jul 2007 08:47:03 +0000 (10:47 +0200)]
Don't include config.h from internal headers.
This avoids redefinition errors (on the new symbol, __STDC_LIMIT_MACROS_TRIGGER)
when config.h is included twice.
Bob Proulx reported the buildbot failures: http://buildbot.proulx.com:9001/
Jim Meyering [Fri, 22 Jun 2007 17:44:27 +0000 (19:44 +0200)]
Avoid test failure on Linux-2.6.8 due to too small underlying file.
Overwrite the label creating a 4KB file; 1KB was too small and would
trigger the failure. Reported by Bob Proulx.
Jim Meyering [Fri, 22 Jun 2007 14:30:16 +0000 (16:30 +0200)]
Work around test failures caused by inadequate libreadline.
* configure.ac: Reject an inadequate libreadline5.0.
* parted/ui.c (_readline) [!HAVE_LIBREADLINE]: Echo each
just-read line, to be consistent with libreadline5.2.
Signed-off-by: Jim Meyering <jim@meyering.net>
Jim Meyering [Fri, 22 Jun 2007 14:01:59 +0000 (16:01 +0200)]
Avoid mklabel test failure with very small file on Linux-2.6.8.
Signed-off-by: Jim Meyering <jim@meyering.net>
Jim Meyering [Mon, 18 Jun 2007 12:52:27 +0000 (14:52 +0200)]
README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out.
Mention uuid-devel and pkg-config, too.
David Vazquez [Tue, 12 Jun 2007 19:25:47 +0000 (21:25 +0200)]
Replace some malloc and strdup by xmalloc and xstrdup respectively
I replace some malloc and strdup by xmalloc and xstrdup respectively.
Signed-off-by: David Vazquez <xeos@gmail.com>
Jim Meyering [Tue, 12 Jun 2007 15:25:18 +0000 (17:25 +0200)]
Fix the mkfs final-block-group-too-short bug.
mkfs would fail for certain sizes resulting in a final block-group
that was too small to accommodate the minimum number of admin blocks.
There was already work-around code for when a decremented "numgroups"
was 1. This change applies that work-around code for larger values of
numgroups, too. Also, there was an off-by-one error in the guard test
that would allow a few too-small partition sizes to slip through and
provoke the error (see tests/t2000-mkfs.sh for two examples).
This change fixes that, too.
Jim Meyering [Tue, 12 Jun 2007 14:39:55 +0000 (16:39 +0200)]
Fix two "make check"-as-root failures.
t1100-busy-label.sh: Remove extra copy of "o2" temporary file name.
test-lib.sh (emit_superuser_warning): Exit successfully when run as root, too.
Jim Meyering [Mon, 11 Jun 2007 11:19:03 +0000 (13:19 +0200)]
Fix inconsistent prompt for file system type.
* parted/parted.c (do_mkfs): Use a consistent prompt when asking
for a file system type.
Jim Meyering [Mon, 11 Jun 2007 12:34:39 +0000 (14:34 +0200)]
Add a test to record the current EXT2 mkpartfs failure for some sizes.
Run this:
dev=F
dd if=/dev/null of=$dev bs=1 seek=20M
./parted -s $dev mklabel gpt
./parted -s $dev mkpartfs primary ext2 0
16796160B
It fails with this diagnostic:
Error: Attempt to write sectors 32772-32773 outside of partition on /t/F.
But if you choose a size that's one byte smaller, it works:
./parted -s $dev mkpartfs primary ext2 0
16796159B
The difference is in how ext2_mkfs_write_meta computes
the number of block groups. In the former case, it computes
numgroups = 3. In the latter, numgroups = 2.
The trouble with the first case is that there isn't enough
space for 3 full block groups in a file system of that size.
Hence the eventual attempt to write beyond the initially-
established end-of-file-system mark.
Jim Meyering [Mon, 11 Jun 2007 10:32:36 +0000 (12:32 +0200)]
Avoid unnecessary writes in test scripts.
This changes the tests to create sparse files for some test inputs
rather than zero-filled non-sparse ones. Doing this cuts more than 50% off
the run time of "make check" in the tests/ directory.
Signed-off-by: Jim Meyering <jim@meyering.net>
Matt Davis [Fri, 1 Jun 2007 02:36:58 +0000 (22:36 -0400)]
Add a test for an ext2-resize failure.
This patch is based on the change from Matt Davis:
http://thread.gmane.org/gmane.comp.gnu.parted.devel/1695/focus=1704
Demonstrate an ext2-resize failure in parted-1.8.7, based on the report in
http://parted.alioth.debian.org/cgi-bin/trac.cgi/ticket/22