summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsrs5694 <srs5694@users.sourceforge.net>2011-10-01 18:40:10 -0400
committersrs5694 <srs5694@users.sourceforge.net>2011-10-01 18:40:10 -0400
commit23d8d54cdffa9bab0395dab92faa1990410bbb9a (patch)
tree47ec1eb8736b57e8ceb313702f3a962efbf4684d
parentd1b11e8305621d73ff675af940e7f1f28b639b0d (diff)
downloadsgdisk-23d8d54cdffa9bab0395dab92faa1990410bbb9a.tar.gz
Changes for GPT fdisk version 0.8.1
-rw-r--r--Makefile464
-rw-r--r--NEWS27
-rw-r--r--basicmbr.cc117
-rw-r--r--basicmbr.h5
-rw-r--r--cgdisk.84
-rw-r--r--current.spec8
-rw-r--r--fixparts.84
-rw-r--r--gdisk.84
-rw-r--r--gpt.cc3
-rw-r--r--sgdisk.84
-rw-r--r--support.h2
11 files changed, 100 insertions, 542 deletions
diff --git a/Makefile b/Makefile
index 93153af..3364082 100644
--- a/Makefile
+++ b/Makefile
@@ -42,467 +42,3 @@ $(OBJS):
$(CRITICAL_CXX_FLAGS)
# DO NOT DELETE
-
-attributes.o: /usr/include/stdint.h /usr/include/features.h
-attributes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-attributes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-attributes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
-attributes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-attributes.o: /usr/include/libio.h /usr/include/_G_config.h
-attributes.o: /usr/include/wchar.h /usr/include/bits/libio-ldbl.h
-attributes.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-attributes.o: /usr/include/bits/stdio-ldbl.h attributes.h support.h
-attributes.o: /usr/include/stdlib.h /usr/include/sys/types.h
-attributes.o: /usr/include/time.h /usr/include/endian.h
-attributes.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-attributes.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-attributes.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-attributes.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-attributes.o: /usr/include/bits/stdlib-ldbl.h
-basicmbr.o: /usr/include/stdio.h /usr/include/features.h
-basicmbr.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-basicmbr.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-basicmbr.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-basicmbr.o: /usr/include/libio.h /usr/include/_G_config.h
-basicmbr.o: /usr/include/wchar.h /usr/include/bits/libio-ldbl.h
-basicmbr.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-basicmbr.o: /usr/include/bits/stdio-ldbl.h /usr/include/stdlib.h
-basicmbr.o: /usr/include/sys/types.h /usr/include/time.h
-basicmbr.o: /usr/include/endian.h /usr/include/bits/endian.h
-basicmbr.o: /usr/include/sys/select.h /usr/include/bits/select.h
-basicmbr.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-basicmbr.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-basicmbr.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-basicmbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-basicmbr.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
-basicmbr.o: /usr/include/string.h /usr/include/sys/stat.h
-basicmbr.o: /usr/include/bits/stat.h /usr/include/errno.h
-basicmbr.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-basicmbr.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-basicmbr.o: /usr/include/asm-generic/errno-base.h mbr.h gptpart.h support.h
-basicmbr.o: parttypes.h guid.h /usr/include/uuid/uuid.h
-basicmbr.o: /usr/include/sys/time.h attributes.h diskio.h
-basicmbr.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-basicmbr.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-basicmbr.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-basicmbr.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-basicmbr.o: basicmbr.h mbrpart.h
-bsd.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-bsd.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-bsd.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h
-bsd.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-bsd.o: /usr/include/_G_config.h /usr/include/wchar.h
-bsd.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-bsd.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-bsd.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
-bsd.o: /usr/include/endian.h /usr/include/bits/endian.h
-bsd.o: /usr/include/sys/select.h /usr/include/bits/select.h
-bsd.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-bsd.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-bsd.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-bsd.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-bsd.o: /usr/include/bits/fcntl.h /usr/include/sys/stat.h
-bsd.o: /usr/include/bits/stat.h /usr/include/errno.h
-bsd.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-bsd.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-bsd.o: /usr/include/asm-generic/errno-base.h support.h bsd.h gptpart.h
-bsd.o: parttypes.h guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h
-bsd.o: attributes.h diskio.h /usr/include/sys/ioctl.h
-bsd.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-bsd.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-bsd.o: /usr/include/termios.h /usr/include/bits/termios.h
-bsd.o: /usr/include/sys/ttydefaults.h
-cgdisk.o: gptcurses.h gptpart.h /usr/include/stdint.h /usr/include/features.h
-cgdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-cgdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-cgdisk.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
-cgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-cgdisk.o: /usr/include/time.h /usr/include/endian.h
-cgdisk.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-cgdisk.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-cgdisk.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-cgdisk.o: /usr/include/bits/pthreadtypes.h support.h /usr/include/stdlib.h
-cgdisk.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h parttypes.h
-cgdisk.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h
-cgdisk.o: attributes.h gpt.h mbr.h diskio.h /usr/include/sys/ioctl.h
-cgdisk.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-cgdisk.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-cgdisk.o: /usr/include/termios.h /usr/include/bits/termios.h
-cgdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
-crc32.o: /usr/include/stdio.h /usr/include/features.h
-crc32.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-crc32.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-crc32.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-crc32.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-crc32.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-crc32.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-crc32.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
-crc32.o: /usr/include/endian.h /usr/include/bits/endian.h
-crc32.o: /usr/include/sys/select.h /usr/include/bits/select.h
-crc32.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-crc32.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-crc32.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h crc32.h
-crc32.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-diskio.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-diskio.o: /usr/include/termios.h /usr/include/bits/termios.h
-diskio.o: /usr/include/sys/ttydefaults.h /usr/include/stdint.h
-diskio.o: /usr/include/bits/wchar.h /usr/include/errno.h
-diskio.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-diskio.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-diskio.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio.o: /usr/include/time.h /usr/include/endian.h
-diskio.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-diskio.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-diskio.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-diskio.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/stat.h
-diskio.o: /usr/include/bits/stat.h support.h /usr/include/stdlib.h
-diskio.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h diskio.h
-diskio-unix.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio-unix.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-unix.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-diskio-unix.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-unix.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-diskio-unix.o: /usr/include/termios.h /usr/include/bits/termios.h
-diskio-unix.o: /usr/include/sys/ttydefaults.h /usr/include/string.h
-diskio-unix.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio-unix.o: /usr/include/errno.h /usr/include/bits/errno.h
-diskio-unix.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-unix.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-unix.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-unix.o: /usr/include/time.h /usr/include/endian.h
-diskio-unix.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-diskio-unix.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-diskio-unix.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-diskio-unix.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/stat.h
-diskio-unix.o: /usr/include/bits/stat.h diskio.h support.h
-diskio-unix.o: /usr/include/stdlib.h /usr/include/alloca.h
-diskio-unix.o: /usr/include/bits/stdlib-ldbl.h
-diskio-windows.o: /usr/include/stdio.h /usr/include/features.h
-diskio-windows.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-windows.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-diskio-windows.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-windows.o: /usr/include/libio.h /usr/include/_G_config.h
-diskio-windows.o: /usr/include/wchar.h /usr/include/bits/libio-ldbl.h
-diskio-windows.o: /usr/include/bits/stdio_lim.h
-diskio-windows.o: /usr/include/bits/sys_errlist.h
-diskio-windows.o: /usr/include/bits/stdio-ldbl.h /usr/include/stdint.h
-diskio-windows.o: /usr/include/bits/wchar.h /usr/include/errno.h
-diskio-windows.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-diskio-windows.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-diskio-windows.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-windows.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-windows.o: /usr/include/time.h /usr/include/endian.h
-diskio-windows.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-diskio-windows.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-diskio-windows.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-diskio-windows.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/stat.h
-diskio-windows.o: /usr/include/bits/stat.h support.h /usr/include/stdlib.h
-diskio-windows.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-diskio-windows.o: diskio.h /usr/include/sys/ioctl.h
-diskio-windows.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-windows.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-diskio-windows.o: /usr/include/termios.h /usr/include/bits/termios.h
-diskio-windows.o: /usr/include/sys/ttydefaults.h
-fixparts.o: /usr/include/stdio.h /usr/include/features.h
-fixparts.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-fixparts.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-fixparts.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-fixparts.o: /usr/include/libio.h /usr/include/_G_config.h
-fixparts.o: /usr/include/wchar.h /usr/include/bits/libio-ldbl.h
-fixparts.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-fixparts.o: /usr/include/bits/stdio-ldbl.h /usr/include/string.h basicmbr.h
-fixparts.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-fixparts.o: /usr/include/sys/types.h /usr/include/time.h
-fixparts.o: /usr/include/endian.h /usr/include/bits/endian.h
-fixparts.o: /usr/include/sys/select.h /usr/include/bits/select.h
-fixparts.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-fixparts.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-fixparts.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-fixparts.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-fixparts.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-fixparts.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-fixparts.o: support.h /usr/include/stdlib.h /usr/include/alloca.h
-fixparts.o: /usr/include/bits/stdlib-ldbl.h mbrpart.h
-gdisk.o: /usr/include/string.h /usr/include/features.h
-gdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h gpttext.h gpt.h
-gdisk.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gdisk.o: /usr/include/sys/types.h /usr/include/bits/types.h
-gdisk.o: /usr/include/bits/typesizes.h /usr/include/time.h
-gdisk.o: /usr/include/endian.h /usr/include/bits/endian.h
-gdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gdisk.o: gptpart.h support.h /usr/include/stdlib.h /usr/include/alloca.h
-gdisk.o: /usr/include/bits/stdlib-ldbl.h parttypes.h guid.h
-gdisk.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h mbr.h
-gdisk.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gdisk.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-gdisk.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-gdisk.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-gdisk.o: basicmbr.h mbrpart.h bsd.h
-gpt.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-gpt.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-gpt.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h
-gpt.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gpt.o: /usr/include/_G_config.h /usr/include/wchar.h
-gpt.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-gpt.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-gpt.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
-gpt.o: /usr/include/endian.h /usr/include/bits/endian.h
-gpt.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gpt.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gpt.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gpt.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-gpt.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-gpt.o: /usr/include/bits/fcntl.h /usr/include/string.h /usr/include/math.h
-gpt.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h
-gpt.o: /usr/include/bits/mathcalls.h /usr/include/sys/stat.h
-gpt.o: /usr/include/bits/stat.h /usr/include/errno.h
-gpt.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-gpt.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-gpt.o: /usr/include/asm-generic/errno-base.h crc32.h gpt.h gptpart.h
-gpt.o: support.h parttypes.h guid.h /usr/include/uuid/uuid.h
-gpt.o: /usr/include/sys/time.h attributes.h mbr.h diskio.h
-gpt.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gpt.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-gpt.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-gpt.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h basicmbr.h
-gpt.o: mbrpart.h bsd.h
-gptcl.o: /usr/include/string.h /usr/include/features.h
-gptcl.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gptcl.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-gptcl.o: /usr/include/errno.h /usr/include/bits/errno.h
-gptcl.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-gptcl.o: /usr/include/asm-generic/errno.h
-gptcl.o: /usr/include/asm-generic/errno-base.h /usr/include/popt.h
-gptcl.o: /usr/include/stdio.h /usr/include/bits/types.h
-gptcl.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gptcl.o: /usr/include/_G_config.h /usr/include/wchar.h
-gptcl.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-gptcl.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-gptcl.o: gptcl.h gpt.h /usr/include/stdint.h /usr/include/bits/wchar.h
-gptcl.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
-gptcl.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-gptcl.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-gptcl.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-gptcl.o: /usr/include/bits/pthreadtypes.h gptpart.h support.h
-gptcl.o: /usr/include/stdlib.h /usr/include/alloca.h
-gptcl.o: /usr/include/bits/stdlib-ldbl.h parttypes.h guid.h
-gptcl.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h mbr.h
-gptcl.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gptcl.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-gptcl.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-gptcl.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-gptcl.o: basicmbr.h mbrpart.h bsd.h
-gptcurses.o: /usr/include/ncurses.h /usr/include/ncurses_dll.h
-gptcurses.o: /usr/include/stdio.h /usr/include/features.h
-gptcurses.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gptcurses.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-gptcurses.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gptcurses.o: /usr/include/libio.h /usr/include/_G_config.h
-gptcurses.o: /usr/include/wchar.h /usr/include/bits/libio-ldbl.h
-gptcurses.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gptcurses.o: /usr/include/bits/stdio-ldbl.h /usr/include/unctrl.h
-gptcurses.o: /usr/include/curses.h gptcurses.h gptpart.h
-gptcurses.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gptcurses.o: /usr/include/sys/types.h /usr/include/time.h
-gptcurses.o: /usr/include/endian.h /usr/include/bits/endian.h
-gptcurses.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gptcurses.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gptcurses.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gptcurses.o: support.h /usr/include/stdlib.h /usr/include/alloca.h
-gptcurses.o: /usr/include/bits/stdlib-ldbl.h parttypes.h guid.h
-gptcurses.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h
-gptcurses.o: gpt.h mbr.h diskio.h /usr/include/sys/ioctl.h
-gptcurses.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-gptcurses.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-gptcurses.o: /usr/include/termios.h /usr/include/bits/termios.h
-gptcurses.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
-gptpart.o: /usr/include/string.h /usr/include/features.h
-gptpart.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gptpart.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-gptpart.o: /usr/include/stdio.h /usr/include/bits/types.h
-gptpart.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gptpart.o: /usr/include/_G_config.h /usr/include/wchar.h
-gptpart.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-gptpart.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-gptpart.o: gptpart.h /usr/include/stdint.h /usr/include/bits/wchar.h
-gptpart.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
-gptpart.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-gptpart.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-gptpart.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-gptpart.o: /usr/include/bits/pthreadtypes.h support.h /usr/include/stdlib.h
-gptpart.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h parttypes.h
-gptpart.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h
-gptpart.o: attributes.h
-gpttext.o: /usr/include/string.h /usr/include/features.h
-gpttext.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gpttext.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-gpttext.o: /usr/include/errno.h /usr/include/bits/errno.h
-gpttext.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-gpttext.o: /usr/include/asm-generic/errno.h
-gpttext.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
-gpttext.o: /usr/include/bits/wchar.h /usr/include/limits.h
-gpttext.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
-gpttext.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
-gpttext.o: attributes.h gpttext.h gpt.h /usr/include/sys/types.h
-gpttext.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gpttext.o: /usr/include/time.h /usr/include/endian.h
-gpttext.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-gpttext.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-gpttext.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-gpttext.o: /usr/include/bits/pthreadtypes.h gptpart.h support.h
-gpttext.o: /usr/include/stdlib.h /usr/include/alloca.h
-gpttext.o: /usr/include/bits/stdlib-ldbl.h parttypes.h guid.h
-gpttext.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h mbr.h diskio.h
-gpttext.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gpttext.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-gpttext.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-gpttext.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-gpttext.o: basicmbr.h mbrpart.h bsd.h
-guid.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-guid.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-guid.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h
-guid.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-guid.o: /usr/include/_G_config.h /usr/include/wchar.h
-guid.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-guid.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-guid.o: /usr/include/time.h /usr/include/string.h guid.h
-guid.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-guid.o: /usr/include/uuid/uuid.h /usr/include/sys/types.h
-guid.o: /usr/include/endian.h /usr/include/bits/endian.h
-guid.o: /usr/include/sys/select.h /usr/include/bits/select.h
-guid.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-guid.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-guid.o: /usr/include/sys/time.h support.h /usr/include/stdlib.h
-guid.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-mbr.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-mbr.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-mbr.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h
-mbr.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-mbr.o: /usr/include/_G_config.h /usr/include/wchar.h
-mbr.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-mbr.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-mbr.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
-mbr.o: /usr/include/endian.h /usr/include/bits/endian.h
-mbr.o: /usr/include/sys/select.h /usr/include/bits/select.h
-mbr.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-mbr.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-mbr.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-mbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-mbr.o: /usr/include/bits/fcntl.h /usr/include/string.h
-mbr.o: /usr/include/sys/stat.h /usr/include/bits/stat.h /usr/include/errno.h
-mbr.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-mbr.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-mbr.o: /usr/include/asm-generic/errno-base.h mbr.h gptpart.h support.h
-mbr.o: parttypes.h guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h
-mbr.o: attributes.h diskio.h /usr/include/sys/ioctl.h
-mbr.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-mbr.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
-mbr.o: /usr/include/termios.h /usr/include/bits/termios.h
-mbr.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h
-mbrpart.o: /usr/include/stdint.h /usr/include/features.h
-mbrpart.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-mbrpart.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-mbrpart.o: /usr/include/bits/wchar.h support.h /usr/include/stdlib.h
-mbrpart.o: /usr/include/sys/types.h /usr/include/bits/types.h
-mbrpart.o: /usr/include/bits/typesizes.h /usr/include/time.h
-mbrpart.o: /usr/include/endian.h /usr/include/bits/endian.h
-mbrpart.o: /usr/include/sys/select.h /usr/include/bits/select.h
-mbrpart.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-mbrpart.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-mbrpart.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h mbrpart.h
-parttypes.o: /usr/include/string.h /usr/include/features.h
-parttypes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-parttypes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-parttypes.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-parttypes.o: /usr/include/stdio.h /usr/include/bits/types.h
-parttypes.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-parttypes.o: /usr/include/_G_config.h /usr/include/wchar.h
-parttypes.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-parttypes.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-parttypes.o: parttypes.h /usr/include/stdlib.h /usr/include/sys/types.h
-parttypes.o: /usr/include/time.h /usr/include/endian.h
-parttypes.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-parttypes.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-parttypes.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-parttypes.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-parttypes.o: /usr/include/bits/stdlib-ldbl.h support.h guid.h
-parttypes.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h
-sgdisk.o: gptcl.h gpt.h /usr/include/stdint.h /usr/include/features.h
-sgdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-sgdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-sgdisk.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
-sgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-sgdisk.o: /usr/include/time.h /usr/include/endian.h
-sgdisk.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-sgdisk.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-sgdisk.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-sgdisk.o: /usr/include/bits/pthreadtypes.h gptpart.h support.h
-sgdisk.o: /usr/include/stdlib.h /usr/include/alloca.h
-sgdisk.o: /usr/include/bits/stdlib-ldbl.h parttypes.h guid.h
-sgdisk.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h mbr.h
-sgdisk.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-sgdisk.o: /usr/include/asm/ioctls.h /usr/include/asm/ioctl.h
-sgdisk.o: /usr/include/bits/ioctl-types.h /usr/include/termios.h
-sgdisk.o: /usr/include/bits/termios.h /usr/include/sys/ttydefaults.h
-sgdisk.o: basicmbr.h mbrpart.h bsd.h /usr/include/popt.h /usr/include/stdio.h
-sgdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-sgdisk.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-sgdisk.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-support.o: /usr/include/stdio.h /usr/include/features.h
-support.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-support.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-support.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-support.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-support.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-support.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-support.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-support.o: /usr/include/errno.h /usr/include/bits/errno.h
-support.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-support.o: /usr/include/asm-generic/errno.h
-support.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-support.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-support.o: /usr/include/time.h /usr/include/endian.h
-support.o: /usr/include/bits/endian.h /usr/include/sys/select.h
-support.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-support.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-support.o: /usr/include/bits/pthreadtypes.h /usr/include/string.h
-support.o: /usr/include/sys/stat.h /usr/include/bits/stat.h support.h
-support.o: /usr/include/stdlib.h /usr/include/alloca.h
-support.o: /usr/include/bits/stdlib-ldbl.h
-test.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-test.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-test.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h
-test.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-test.o: /usr/include/_G_config.h /usr/include/wchar.h
-test.o: /usr/include/bits/libio-ldbl.h /usr/include/bits/stdio_lim.h
-test.o: /usr/include/bits/sys_errlist.h /usr/include/bits/stdio-ldbl.h
-test.o: support.h /usr/include/stdint.h /usr/include/bits/wchar.h
-test.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
-test.o: /usr/include/endian.h /usr/include/bits/endian.h
-test.o: /usr/include/sys/select.h /usr/include/bits/select.h
-test.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-test.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-test.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h
-testguid.o: guid.h /usr/include/stdint.h /usr/include/features.h
-testguid.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-testguid.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
-testguid.o: /usr/include/bits/wchar.h /usr/include/uuid/uuid.h
-testguid.o: /usr/include/sys/types.h /usr/include/bits/types.h
-testguid.o: /usr/include/bits/typesizes.h /usr/include/time.h
-testguid.o: /usr/include/endian.h /usr/include/bits/endian.h
-testguid.o: /usr/include/sys/select.h /usr/include/bits/select.h
-testguid.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-testguid.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-testguid.o: /usr/include/sys/time.h parttypes.h /usr/include/stdlib.h
-testguid.o: /usr/include/alloca.h /usr/include/bits/stdlib-ldbl.h support.h
diff --git a/NEWS b/NEWS
index 40953f8..7e62f33 100644
--- a/NEWS
+++ b/NEWS
@@ -1,16 +1,29 @@
-0.8.1 (?/??/2011):
+0.8.1 (10/1/2011):
------------------
+- Fixed bug that could cause FixParts to keep a partition's assignment
+ as logical when FixPart could not actually do so. This could happen
+ when there are no gaps between two logical partitions. Some partitioning
+ tools can create such configurations, but FixParts can't. Such
+ configurations are extremely rare. I've only encountered them when
+ logical partitions are out of order.
+
+- Added code to detect infinite loops of logical partitions when reading
+ MBR data. When detected, the program now stops reading after the first
+ loop, so no duplicates appear in the partition list.
+
+- Fixed bug in partition overlap detection in MBR code.
+
- Changed GPT reading code to use the size encoded in GPT headers to
determine how much of the header to use in computing a CRC, with the
restriction that the size be equal to or less than the disk's sector
size. This should work around problems with libefi in ZFS, which sets the
- header size to 512 rather than the standard 92. A caveat: If the disk's
- sector size is larger than the GPTHeader data structure size (512 bytes),
- then the rest of the sector's contents are ignored and replaced with 0
- values. This could produce false positives on CRC checks on disks with
- over-512-byte sector sizes if the header sector is padded with something
- other than 0 values.
+ header size to 512 rather than the more common 92. A caveat: If the
+ disk's sector size is larger than the GPTHeader data structure size (512
+ bytes), then the rest of the sector's contents are ignored and replaced
+ with 0 values. This could produce false positives on CRC checks on disks
+ with over-512-byte sector sizes if the header sector is padded with
+ something other than 0 values.
- Fixed bug in new (as of 0.8.0) check that main and backup partition
tables are identical on big-endian (PowerPC, etc.) hardware.
diff --git a/basicmbr.cc b/basicmbr.cc
index 797c4f2..23fc219 100644
--- a/basicmbr.cc
+++ b/basicmbr.cc
@@ -39,6 +39,7 @@ BasicMBRData::BasicMBRData(void) {
numSecspTrack = MAX_SECSPERTRACK;
myDisk = NULL;
canDeleteMyDisk = 0;
+// memset(&EbrLocations, 0, MAX_MBR_PARTS * sizeof(uint32_t));
EmptyMBR();
} // BasicMBRData default constructor
@@ -51,7 +52,8 @@ BasicMBRData::BasicMBRData(string filename) {
numSecspTrack = MAX_SECSPERTRACK;
myDisk = NULL;
canDeleteMyDisk = 0;
-
+// memset(&EbrLocations, 0, MAX_MBR_PARTS * sizeof(uint32_t));
+
// Try to read the specified partition table, but if it fails....
if (!ReadMBRData(filename)) {
EmptyMBR();
@@ -134,7 +136,7 @@ int BasicMBRData::ReadMBRData(const string & deviceFilename) {
// in the partitions[] array; these partitions must be re-created when
// the partition table is saved in MBR format.
int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
- int allOK = 1, i, logicalNum = 0;
+ int allOK = 1, i, logicalNum = 3;
int err = 1;
TempMBR tempMBR;
@@ -194,10 +196,9 @@ int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
for (i = 0; i < 4; i++) {
if ((partitions[i].GetType() == 0x05) || (partitions[i].GetType() == 0x0f)
|| (partitions[i].GetType() == 0x85)) {
- // Found it, so call a recursive algorithm to load everything from them....
- logicalNum = ReadLogicalPart(partitions[i].GetStartLBA(), UINT32_C(0), 4);
- if ((logicalNum < 0) || (logicalNum >= MAX_MBR_PARTS)) {
- allOK = 0;
+ // Found it, so call a function to load everything from them....
+ logicalNum = ReadLogicalParts(partitions[i].GetStartLBA(), abs(logicalNum) + 1);
+ if (logicalNum < 0) {
cerr << "Error reading logical partitions! List may be truncated!\n";
} // if maxLogicals valid
DeletePartition(i);
@@ -226,7 +227,7 @@ int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
if ((partitions[i].GetType() != UINT8_C(0xEE)) &&
(partitions[i].GetType() != UINT8_C(0x00)))
state = hybrid;
- if (logicalNum > 0)
+ if (logicalNum != 3)
cerr << "Warning! MBR Logical partitions found on a hybrid MBR disk! This is an\n"
<< "EXTREMELY dangerous configuration!\n\a";
} // for
@@ -235,32 +236,40 @@ int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
return allOK;
} // BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize)
-// This is a recursive function to read all the logical partitions, following the
+// This is a function to read all the logical partitions, following the
// logical partition linked list from the disk and storing the basic data in the
-// partitions[] array. Returns last index to partitions[] used, or -1 if there was
-// a problem.
+// partitions[] array. Returns last index to partitions[] used, or -1 times the
+// that index if there was a problem. (Some problems can leave valid logical
+// partition data.)
// Parameters:
// extendedStart = LBA of the start of the extended partition
-// diskOffset = LBA offset WITHIN the extended partition of the one to be read
-// partNum = location in partitions[] array to store retrieved data
-int BasicMBRData::ReadLogicalPart(uint64_t extendedStart, uint64_t diskOffset, int partNum) {
+// partNum = number of first partition in extended partition (normally 4).
+int BasicMBRData::ReadLogicalParts(uint64_t extendedStart, int partNum) {
struct TempMBR ebr;
+ int i, another = 1, allOK = 1;
uint8_t ebrType;
uint64_t offset;
-
- // Check for a valid partition number. Note that partitions MAY be read into
- // the area normally used by primary partitions, although the only calling
- // functions as of GPT fdisk version 0.7.0 don't do so.
- if ((partNum < MAX_MBR_PARTS) && (partNum >= 0)) {
- offset = (uint64_t) (extendedStart + diskOffset);
+ uint64_t EbrLocations[MAX_MBR_PARTS];
+
+ offset = extendedStart;
+ memset(&EbrLocations, 0, MAX_MBR_PARTS * sizeof(uint64_t));
+ while (another && (partNum < MAX_MBR_PARTS) && (partNum >= 0) && (allOK > 0)) {
+ for (i = 0; i < MAX_MBR_PARTS; i++) {
+ if (EbrLocations[i] == offset) { // already read this one; infinite logical partition loop!
+ cerr << "Logical partition infinite loop detected! This is being corrected.\n";
+ allOK = -1;
+ partNum -= 1;
+ } // if
+ } // for
+ EbrLocations[partNum] = offset;
if (myDisk->Seek(offset) == 0) { // seek to EBR record
cerr << "Unable to seek to " << offset << "! Aborting!\n";
- partNum = -1;
+ allOK = -1;
}
if (myDisk->Read(&ebr, 512) != 512) { // Load the data....
cerr << "Error seeking to or reading logical partition data from " << offset
- << "!\nAborting!\n";
- partNum = -1;
+ << "!\nSome logical partitions may be missing!\n";
+ allOK = -1;
} else if (IsLittleEndian() != 1) { // Reverse byte ordering of some data....
ReverseBytes(&ebr.MBRSignature, 2);
ReverseBytes(&ebr.partitions[0].firstLBA, 4);
@@ -270,8 +279,8 @@ int BasicMBRData::ReadLogicalPart(uint64_t extendedStart, uint64_t diskOffset, i
} // if/else/if
if (ebr.MBRSignature != MBR_SIGNATURE) {
- partNum = -1;
- cerr << "MBR signature in logical partition invalid; read 0x";
+ allOK = -1;
+ cerr << "EBR signature for logical partition invalid; read 0x";
cerr.fill('0');
cerr.width(4);
cerr.setf(ios::uppercase);
@@ -281,31 +290,32 @@ int BasicMBRData::ReadLogicalPart(uint64_t extendedStart, uint64_t diskOffset, i
cerr.fill(' ');
} // if
- // Sometimes an EBR points directly to another EBR, rather than defining
- // a logical partition and then pointing to another EBR. Thus, we recurse
- // directly if this is detected, else extract partition data and then
- // recurse on the second entry in the EBR...
- ebrType = ebr.partitions[0].partitionType;
- if ((ebrType == 0x05) || (ebrType == 0x0f) || (ebrType == 0x85)) {
- partNum = ReadLogicalPart(extendedStart, ebr.partitions[0].firstLBA, partNum);
- } else {
- // Copy over the basic data....
- partitions[partNum] = ebr.partitions[0];
- // Adjust the start LBA, since it's encoded strangely....
- partitions[partNum].SetStartLBA(ebr.partitions[0].firstLBA + diskOffset + extendedStart);
- partitions[partNum].SetInclusion(LOGICAL);
-
- // Find the next partition (if there is one) and recurse....
- if ((ebr.partitions[1].firstLBA != UINT32_C(0)) && (partNum >= 4) &&
- (partNum < (MAX_MBR_PARTS - 1))) {
- partNum = ReadLogicalPart(extendedStart, ebr.partitions[1].firstLBA,
- partNum + 1);
+ if ((partNum >= 0) && (partNum < MAX_MBR_PARTS) && (allOK > 0)) {
+ // Sometimes an EBR points directly to another EBR, rather than defining
+ // a logical partition and then pointing to another EBR. Thus, we skip
+ // the logical partition when this is the case....
+ ebrType = ebr.partitions[0].partitionType;
+ if ((ebrType == 0x05) || (ebrType == 0x0f) || (ebrType == 0x85)) {
+ cout << "EBR describes a logical partition!\n";
+ offset = extendedStart + ebr.partitions[0].firstLBA;
} else {
- partNum++;
- } // if another partition
- } // if/else
- } // Not enough space for all the logicals (or previous error encountered)
- return (partNum);
+ // Copy over the basic data....
+ partitions[partNum] = ebr.partitions[0];
+ // Adjust the start LBA, since it's encoded strangely....
+ partitions[partNum].SetStartLBA(ebr.partitions[0].firstLBA + offset);
+ partitions[partNum].SetInclusion(LOGICAL);
+
+ // Find the next partition (if there is one)
+ if ((ebr.partitions[1].firstLBA != UINT32_C(0)) && (partNum < (MAX_MBR_PARTS - 1))) {
+ offset = extendedStart + ebr.partitions[1].firstLBA;
+ partNum++;
+ } else {
+ another = 0;
+ } // if another partition
+ } // if/else
+ } // if
+ } // while()
+ return (partNum * allOK);
} // BasicMBRData::ReadLogicalPart()
// Write the MBR data to the default defined device. This writes both the
@@ -365,7 +375,7 @@ int BasicMBRData::WriteMBRData(DiskIO *theDisk) {
partNum = FindNextInUse(4);
writeEbrTo = (uint64_t) extFirstLBA;
// Write logicals...
- while (allOK && moreLogicals && (partNum < MAX_MBR_PARTS)) {
+ while (allOK && moreLogicals && (partNum < MAX_MBR_PARTS) && (partNum >= 0)) {
partitions[partNum].StoreInStruct(&tempMBR.partitions[0]);
tempMBR.partitions[0].firstLBA = 1;
// tempMBR.partitions[1] points to next EBR or terminates EBR linked list...
@@ -698,7 +708,7 @@ int BasicMBRData::FindOverlaps(void) {
for (i = 0; i < MAX_MBR_PARTS; i++) {
for (j = i + 1; j < MAX_MBR_PARTS; j++) {
- if ((partitions[i].GetInclusion() != NONE) &&
+ if ((partitions[i].GetInclusion() != NONE) && (partitions[j].GetInclusion() != NONE) &&
(partitions[i].DoTheyOverlap(partitions[j]))) {
numProbs++;
cout << "\nProblem: MBR partitions " << i + 1 << " and " << j + 1
@@ -1411,7 +1421,10 @@ uint64_t BasicMBRData::FindFirstInFree(uint64_t start) {
return (bestLastLBA);
} // BasicMBRData::FindFirstInFree()
-// Returns NONE (unused), PRIMARY, LOGICAL, EBR (for EBR or MBR), or INVALID
+// Returns NONE (unused), PRIMARY, LOGICAL, EBR (for EBR or MBR), or INVALID.
+// Note: If the sector immediately before a logical partition is in use by
+// another partition, this function returns PRIMARY or LOGICAL for that
+// sector, rather than EBR.
int BasicMBRData::SectorUsedAs(uint64_t sector, int topPartNum) {
int i = 0, usedAs = NONE;
@@ -1425,7 +1438,7 @@ int BasicMBRData::SectorUsedAs(uint64_t sector, int topPartNum) {
if (sector >= diskSize)
usedAs = INVALID;
i++;
- } while ((i < topPartNum) && (usedAs == NONE));
+ } while ((i < topPartNum) && ((usedAs == NONE) || (usedAs == EBR)));
return usedAs;
} // BasicMBRData::SectorUsedAs()
diff --git a/basicmbr.h b/basicmbr.h
index 3d5b485..1a79856 100644
--- a/basicmbr.h
+++ b/basicmbr.h
@@ -68,10 +68,7 @@ public:
// File I/O functions...
int ReadMBRData(const string & deviceFilename);
int ReadMBRData(DiskIO * theDisk, int checkBlockSize = 1);
- // ReadLogicalPart() returns last partition # read to logicals[] array,
- // or -1 if there was a problem....
- int ReadLogicalPart(uint64_t extendedStart, uint64_t diskOffset,
- int partNum);
+ int ReadLogicalParts(uint64_t extendedStart, int partNum);
int WriteMBRData(void);
int WriteMBRData(DiskIO *theDisk);
int WriteMBRData(const string & deviceFilename);
diff --git a/cgdisk.8 b/cgdisk.8
index 6d09bb2..0b696df 100644
--- a/cgdisk.8
+++ b/cgdisk.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "CGDISK" "8" "0.8.0" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "CGDISK" "8" "0.8.1" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
cgdisk \- Curses-based GUID partition table (GPT) manipulator
.SH "SYNOPSIS"
@@ -268,7 +268,7 @@ Write data. Use this command to save your changes.
.SH "BUGS"
-As of September 2011 (version 0.8.0), \fBcgdisk\fR should be considered
+As of September 2011 (version 0.8.1), \fBcgdisk\fR should be considered
beta software. Although the underlying partition manipulation code is much
older, the \fBcgdisk\fR ncurses user interface is brand new with GPT fdisk
version 0.8.0. Known bugs and limitations include:
diff --git a/current.spec b/current.spec
index 0296294..71d8220 100644
--- a/current.spec
+++ b/current.spec
@@ -1,11 +1,11 @@
Summary: GPT partitioning and MBR repair software
Name: gptfdisk
-Version: 0.8.0
+Version: 0.8.1
Release: 1%{?dist}
License: GPLv2
URL: http://www.rodsbooks.com/gdisk
Group: Applications/System
-Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.0.tar.gz
+Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.1.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description
@@ -80,5 +80,5 @@ provides a few additional partition manipulation features.
%changelog
-* Sat Sep 10 2011 R Smith <rodsmith@rodsbooks.com> - 0.8.0
-- Created spec file for 0.8.0 release
+* Sat Oct 1 2011 R Smith <rodsmith@rodsbooks.com> - 0.8.1
+- Created spec file for 0.8.1 release
diff --git a/fixparts.8 b/fixparts.8
index ffa7963..f754825 100644
--- a/fixparts.8
+++ b/fixparts.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "FIXPARTS" "8" "0.8.0" "Roderick W. Smith" "FixParts Manual"
+.TH "FIXPARTS" "8" "0.8.1" "Roderick W. Smith" "FixParts Manual"
.SH "NAME"
fixparts \- MBR partition table repair utility
.SH "SYNOPSIS"
@@ -202,7 +202,7 @@ see a summary of available options.
.PP
.SH "BUGS"
-As of September 2011 (version 0.8.0), \fBfixparts\fR
+As of September 2011 (version 0.8.1), \fBfixparts\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/gdisk.8 b/gdisk.8
index 4339e8c..c77bf3b 100644
--- a/gdisk.8
+++ b/gdisk.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "GDISK" "8" "0.8.0" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "GDISK" "8" "0.8.1" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
gdisk \- Interactive GUID partition table (GPT) manipulator
.SH "SYNOPSIS"
@@ -561,7 +561,7 @@ entering data. When only one option is possible, \fBgdisk\fR
usually bypasses the prompt entirely.
.SH "BUGS"
-As of September 2011 (version 0.8.0), \fBgdisk\fR
+As of September 2011 (version 0.8.1), \fBgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/gpt.cc b/gpt.cc
index 767f943..76aaace 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -766,8 +766,7 @@ int GPTData::ForceLoadGPTData(void) {
// Return valid headers code: 0 = both headers bad; 1 = main header
// good, backup bad; 2 = backup header good, main header bad;
// 3 = both headers good. Note these codes refer to valid GPT
- // signatures and version numbers; more subtle problems will elude
- // this check!
+ // signatures, version numbers, and CRCs.
validHeaders = CheckHeaderValidity();
// Read partitions (from primary array)
diff --git a/sgdisk.8 b/sgdisk.8
index 3baed08..37a34b8 100644
--- a/sgdisk.8
+++ b/sgdisk.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "SGDISK" "8" "0.8.0" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "SGDISK" "8" "0.8.1" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
.SH "SYNOPSIS"
@@ -485,7 +485,7 @@ An error prevented saving changes
Disk replication operation (-R) failed
.SH "BUGS"
-As of September 2011 (version 0.8.0), \fBsgdisk\fR
+As of October 2011 (version 0.8.1), \fBsgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/support.h b/support.h
index 2562f36..020b177 100644
--- a/support.h
+++ b/support.h
@@ -8,7 +8,7 @@
#ifndef __GPTSUPPORT
#define __GPTSUPPORT
-#define GPTFDISK_VERSION "0.8.0.1"
+#define GPTFDISK_VERSION "0.8.1"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64