Miscellaneous bug fixes.

This commit is contained in:
srs5694
2011-06-10 01:16:51 -04:00
parent 699941e25a
commit 6aae2a9b70
15 changed files with 689 additions and 76 deletions

536
Makefile
View File

@@ -14,10 +14,10 @@ DEPEND= makedepend $(CXXFLAGS)
all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -luuid -o gdisk
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -licuio -luuid -lpopt -o sgdisk
$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
@@ -36,3 +36,535 @@ $(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-64.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/stdio_lim.h
attributes.o: /usr/include/bits/sys_errlist.h attributes.h support.h
attributes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
attributes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
attributes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
attributes.o: /usr/include/sys/types.h /usr/include/time.h
attributes.o: /usr/include/sys/select.h /usr/include/bits/select.h
attributes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
attributes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
attributes.o: /usr/include/alloca.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-64.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/stdio_lim.h
basicmbr.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
basicmbr.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
basicmbr.o: /usr/include/endian.h /usr/include/bits/endian.h
basicmbr.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
basicmbr.o: /usr/include/time.h /usr/include/sys/select.h
basicmbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
basicmbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
basicmbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.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/bits/stat.h /usr/include/string.h
basicmbr.o: /usr/include/xlocale.h /usr/include/sys/stat.h
basicmbr.o: /usr/include/errno.h /usr/include/bits/errno.h
basicmbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
basicmbr.o: /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 /usr/include/unicode/ustream.h
basicmbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
basicmbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
basicmbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
basicmbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
basicmbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
basicmbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
basicmbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
basicmbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
basicmbr.o: /usr/include/unicode/std_string.h
basicmbr.o: /usr/include/unicode/stringpiece.h
basicmbr.o: /usr/include/unicode/bytestream.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-generic/ioctls.h
basicmbr.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
basicmbr.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
basicmbr.o: /usr/include/sys/ttydefaults.h 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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
bsd.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
bsd.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
bsd.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
bsd.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
bsd.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
bsd.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
bsd.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.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/bits/stat.h
bsd.o: /usr/include/sys/stat.h /usr/include/errno.h /usr/include/bits/errno.h
bsd.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
bsd.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
bsd.o: support.h bsd.h gptpart.h parttypes.h /usr/include/unicode/ustream.h
bsd.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
bsd.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
bsd.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
bsd.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
bsd.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
bsd.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
bsd.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
bsd.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
bsd.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
bsd.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
bsd.o: /usr/include/sys/time.h 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-generic/ioctls.h /usr/include/linux/ioctl.h
bsd.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
bsd.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
crc32.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
crc32.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
crc32.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
crc32.o: /usr/include/sys/types.h /usr/include/time.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 crc32.h /usr/include/stdint.h
crc32.o: /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-64.h
diskio.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
diskio.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
diskio.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
diskio.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
diskio.o: /usr/include/stdint.h /usr/include/bits/wchar.h
diskio.o: /usr/include/errno.h /usr/include/bits/errno.h
diskio.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
diskio.o: /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/bits/byteswap.h
diskio.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
diskio.o: /usr/include/bits/stat.h /usr/include/sys/stat.h support.h
diskio.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
diskio.o: /usr/include/bits/waitstatus.h /usr/include/alloca.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-64.h
diskio-unix.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
diskio-unix.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
diskio-unix.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
diskio-unix.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
diskio-unix.o: /usr/include/string.h /usr/include/xlocale.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/bits/byteswap.h
diskio-unix.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio-unix.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio-unix.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
diskio-unix.o: /usr/include/bits/stat.h /usr/include/sys/stat.h diskio.h
diskio-unix.o: support.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
diskio-unix.o: /usr/include/bits/waitstatus.h /usr/include/alloca.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-64.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/stdio_lim.h
diskio-windows.o: /usr/include/bits/sys_errlist.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/bits/byteswap.h
diskio-windows.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio-windows.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio-windows.o: /usr/include/sys/sysmacros.h
diskio-windows.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/stat.h
diskio-windows.o: /usr/include/sys/stat.h support.h /usr/include/stdlib.h
diskio-windows.o: /usr/include/bits/waitflags.h
diskio-windows.o: /usr/include/bits/waitstatus.h /usr/include/alloca.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-generic/ioctls.h
diskio-windows.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
diskio-windows.o: /usr/include/asm-generic/ioctl.h
diskio-windows.o: /usr/include/bits/ioctl-types.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-64.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/stdio_lim.h
fixparts.o: /usr/include/bits/sys_errlist.h /usr/include/string.h
fixparts.o: /usr/include/xlocale.h basicmbr.h /usr/include/stdint.h
fixparts.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
fixparts.o: /usr/include/time.h /usr/include/endian.h
fixparts.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.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-generic/ioctls.h
fixparts.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
fixparts.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
fixparts.o: /usr/include/sys/ttydefaults.h support.h /usr/include/stdlib.h
fixparts.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
fixparts.o: /usr/include/alloca.h mbrpart.h
gdisk.o: /usr/include/stdio.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-64.h
gdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
gdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
gdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gdisk.o: /usr/include/string.h /usr/include/xlocale.h mbr.h
gdisk.o: /usr/include/stdint.h /usr/include/bits/wchar.h
gdisk.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
gdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.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
gdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
gdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
gdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
gdisk.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
gdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gdisk.o: /usr/include/sys/time.h attributes.h diskio.h
gdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
gdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
gdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
gdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
gdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpttext.h gpt.h
gdisk.o: 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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
gpt.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
gpt.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
gpt.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gpt.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
gpt.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
gpt.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
gpt.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.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/bits/stat.h
gpt.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/math.h
gpt.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h
gpt.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h
gpt.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h
gpt.o: /usr/include/bits/mathcalls.h /usr/include/sys/stat.h
gpt.o: /usr/include/errno.h /usr/include/bits/errno.h
gpt.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
gpt.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
gpt.o: crc32.h gpt.h gptpart.h support.h parttypes.h
gpt.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
gpt.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
gpt.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
gpt.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
gpt.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
gpt.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
gpt.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
gpt.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
gpt.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
gpt.o: /usr/include/unicode/stringpiece.h /usr/include/unicode/bytestream.h
gpt.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h
gpt.o: mbr.h diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
gpt.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
gpt.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
gpt.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
gpt.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
gptpart.o: /usr/include/unicode/ustdio.h /usr/include/stdio.h
gptpart.o: /usr/include/features.h /usr/include/sys/cdefs.h
gptpart.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
gptpart.o: /usr/include/gnu/stubs-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
gptpart.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
gptpart.o: /usr/include/unicode/ptypes.h /usr/include/sys/types.h
gptpart.o: /usr/include/time.h /usr/include/endian.h
gptpart.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gptpart.o: /usr/include/sys/select.h /usr/include/bits/select.h
gptpart.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
gptpart.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
gptpart.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gptpart.o: /usr/include/stdint.h /usr/include/bits/wchar.h
gptpart.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gptpart.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gptpart.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gptpart.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gptpart.o: /usr/include/unicode/ucnv.h /usr/include/unicode/ucnv_err.h
gptpart.o: /usr/include/unicode/uenum.h /usr/include/unicode/localpointer.h
gptpart.o: /usr/include/unicode/utrans.h /usr/include/unicode/urep.h
gptpart.o: /usr/include/unicode/parseerr.h /usr/include/string.h
gptpart.o: /usr/include/xlocale.h gptpart.h support.h /usr/include/stdlib.h
gptpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gptpart.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gptpart.o: /usr/include/unicode/unistr.h /usr/include/unicode/rep.h
gptpart.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
gptpart.o: /usr/include/unicode/stringpiece.h
gptpart.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gptpart.o: /usr/include/sys/time.h 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-64.h
gpttext.o: /usr/include/xlocale.h /usr/include/errno.h
gpttext.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
gpttext.o: /usr/include/asm/errno.h /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/bits/byteswap.h
gpttext.o: /usr/include/sys/select.h /usr/include/bits/select.h
gpttext.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
gpttext.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
gpttext.o: gptpart.h support.h /usr/include/stdlib.h
gpttext.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gpttext.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gpttext.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
gpttext.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
gpttext.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gpttext.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gpttext.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gpttext.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gpttext.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gpttext.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
gpttext.o: /usr/include/unicode/std_string.h
gpttext.o: /usr/include/unicode/stringpiece.h
gpttext.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gpttext.o: /usr/include/sys/time.h mbr.h diskio.h /usr/include/sys/ioctl.h
gpttext.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
gpttext.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
gpttext.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
gpttext.o: /usr/include/bits/ioctl-types.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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
guid.o: /usr/include/time.h /usr/include/string.h /usr/include/xlocale.h
guid.o: guid.h /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/bits/byteswap.h /usr/include/sys/select.h
guid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
guid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
guid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h support.h
guid.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
guid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
mbr.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
mbr.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
mbr.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
mbr.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
mbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
mbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.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/bits/stat.h
mbr.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/sys/stat.h
mbr.o: /usr/include/errno.h /usr/include/bits/errno.h
mbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
mbr.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
mbr.o: mbr.h gptpart.h support.h parttypes.h /usr/include/unicode/ustream.h
mbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
mbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
mbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
mbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
mbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
mbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
mbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
mbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
mbr.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
mbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
mbr.o: /usr/include/sys/time.h 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-generic/ioctls.h /usr/include/linux/ioctl.h
mbr.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
mbr.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
mbr.o: 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-64.h
mbrpart.o: /usr/include/bits/wchar.h support.h /usr/include/stdlib.h
mbrpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
mbrpart.o: /usr/include/endian.h /usr/include/bits/endian.h
mbrpart.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
mbrpart.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
mbrpart.o: /usr/include/time.h /usr/include/sys/select.h
mbrpart.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mbrpart.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
mbrpart.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.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-64.h
parttypes.o: /usr/include/xlocale.h /usr/include/stdint.h
parttypes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
parttypes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
parttypes.o: /usr/include/libio.h /usr/include/_G_config.h
parttypes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
parttypes.o: /usr/include/bits/sys_errlist.h parttypes.h
parttypes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
parttypes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
parttypes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
parttypes.o: /usr/include/sys/types.h /usr/include/time.h
parttypes.o: /usr/include/sys/select.h /usr/include/bits/select.h
parttypes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
parttypes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
parttypes.o: /usr/include/alloca.h /usr/include/unicode/ustream.h
parttypes.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
parttypes.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
parttypes.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
parttypes.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
parttypes.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
parttypes.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
parttypes.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
parttypes.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
parttypes.o: /usr/include/unicode/std_string.h
parttypes.o: /usr/include/unicode/stringpiece.h
parttypes.o: /usr/include/unicode/bytestream.h support.h guid.h
parttypes.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h
sgdisk.o: /usr/include/stdio.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-64.h
sgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
sgdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
sgdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
sgdisk.o: /usr/include/popt.h /usr/include/errno.h /usr/include/bits/errno.h
sgdisk.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
sgdisk.o: /usr/include/asm-generic/errno.h
sgdisk.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
sgdisk.o: /usr/include/bits/wchar.h /usr/include/string.h
sgdisk.o: /usr/include/xlocale.h mbr.h /usr/include/sys/types.h
sgdisk.o: /usr/include/time.h /usr/include/endian.h
sgdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
sgdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
sgdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
sgdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
sgdisk.o: gptpart.h support.h /usr/include/stdlib.h
sgdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
sgdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
sgdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
sgdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
sgdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
sgdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
sgdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
sgdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
sgdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
sgdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
sgdisk.o: /usr/include/unicode/std_string.h
sgdisk.o: /usr/include/unicode/stringpiece.h
sgdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
sgdisk.o: /usr/include/sys/time.h attributes.h diskio.h
sgdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
sgdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
sgdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
sgdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
sgdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpt.h bsd.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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.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/bits/byteswap.h
support.o: /usr/include/sys/select.h /usr/include/bits/select.h
support.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
support.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
support.o: /usr/include/bits/stat.h /usr/include/string.h
support.o: /usr/include/xlocale.h /usr/include/sys/stat.h support.h
support.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
support.o: /usr/include/bits/waitstatus.h /usr/include/alloca.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-64.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/stdio_lim.h /usr/include/bits/sys_errlist.h
test.o: support.h /usr/include/stdint.h /usr/include/bits/wchar.h
test.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
test.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
test.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
test.o: /usr/include/sys/types.h /usr/include/time.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
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-64.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/bits/byteswap.h /usr/include/sys/select.h
testguid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
testguid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
testguid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h
testguid.o: parttypes.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
testguid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
testguid.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
testguid.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
testguid.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
testguid.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
testguid.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
testguid.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
testguid.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
testguid.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
testguid.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
testguid.o: /usr/include/unicode/stringpiece.h
testguid.o: /usr/include/unicode/bytestream.h support.h

15
NEWS
View File

@@ -1,3 +1,18 @@
0.7.2 (?/??/2011):
------------------
- Fixed a bug that caused an incorrect code to be set for active/bootable
partitions when generating a hybrid MBR.
- Enable entry of hex codes that begin with "0x" for both GPT and MBR
partitions.
- Fixed bug that caused the boot loader code to be lost when creating a
hybrid MBR.
- Fixed bug in sector input code that could produce improper values
if the user inputs ridiculously large "+" values.
0.7.1 (3/21/2011):
------------------

View File

@@ -84,6 +84,10 @@ BasicMBRData & BasicMBRData::operator=(const BasicMBRData & orig) {
state = orig.state;
myDisk = new DiskIO;
if (myDisk == NULL) {
cerr << "Unable to allocate memory in BasicMBRData::operator=()! Terminating!\n";
exit(1);
} // if
if (orig.myDisk != NULL)
myDisk->OpenForRead(orig.myDisk->GetName());
@@ -106,6 +110,10 @@ int BasicMBRData::ReadMBRData(const string & deviceFilename) {
if (myDisk == NULL) {
myDisk = new DiskIO;
if (myDisk == NULL) {
cerr << "Unable to allocate memory in BasicMBRData::ReadMBRData()! Terminating!\n";
exit(1);
} // if
canDeleteMyDisk = 1;
} // if
if (myDisk->OpenForRead(deviceFilename)) {
@@ -1497,7 +1505,8 @@ MBRPart* BasicMBRData::GetPartition(int i) {
// if the return value is >0, or possibly >=0 depending on intentions.)
int BasicMBRData::DoMenu(const string& prompt) {
int goOn = 1, quitting = 0, retval, num, haveShownInfo = 0;
unsigned int hexCode = 0x00;
unsigned int hexCode;
string tempStr;
do {
cout << prompt;
@@ -1547,10 +1556,13 @@ int BasicMBRData::DoMenu(const string& prompt) {
break;
case 't': case 'T':
num = GetNumber(1, MAX_MBR_PARTS, 1, "Partition to change type code: ") - 1;
hexCode = 0x00;
if (partitions[num].GetLengthLBA() > 0) {
while ((hexCode <= 0) || (hexCode > 255)) {
cout << "Enter an MBR hex code: ";
hexCode = StrToHex(ReadString(), 0);
tempStr = ReadString();
if (IsHex(tempStr))
sscanf(tempStr.c_str(), "%x", &hexCode);
} // while
partitions[num].SetType(hexCode);
} // if

View File

@@ -18,8 +18,6 @@
using namespace std;
class PartNotes;
/****************************************
* *
* MBRData class and related structures *

4
bsd.cc
View File

@@ -134,6 +134,10 @@ int BSDData::ReadBSDData(DiskIO *theDisk, uint64_t startSector, uint64_t endSect
// If the state is good, go ahead and load the main partition data....
if (state == bsd) {
partitions = new struct BSDRecord[numParts * sizeof(struct BSDRecord)];
if (partitions == NULL) {
cerr << "Unable to allocate memory in BSDData::ReadBSDData()! Terminating!\n";
exit(1);
} // if
for (i = 0; i < numParts; i++) {
// Once again, we use the buffer, but index it using a BSDRecord
// pointer (dangerous, but effective)....

View File

@@ -290,6 +290,10 @@ int DiskIO::Read(void* buffer, int numBytes) {
numBlocks++;
tempSpace = new char [numBlocks * blockSize];
} // if/else
if (tempSpace == NULL) {
cerr << "Unable to allocate memory in DiskIO::Read()! Terminating!\n";
exit(1);
} // if
// Read the data into temporary space, then copy it to buffer
retval = read(fd, tempSpace, numBlocks * blockSize);
@@ -328,6 +332,10 @@ int DiskIO::Write(void* buffer, int numBytes) {
if ((numBytes % blockSize) != 0) numBlocks++;
tempSpace = new char [numBlocks * blockSize];
} // if/else
if (tempSpace == NULL) {
cerr << "Unable to allocate memory in DiskIO::Write()! Terminating!\n";
exit(1);
} // if
// Copy the data to my own buffer, then write it
memcpy(tempSpace, buffer, numBytes);

View File

@@ -230,6 +230,10 @@ int DiskIO::Read(void* buffer, int numBytes) {
numBlocks++;
tempSpace = new char [numBlocks * blockSize];
} // if/else
if (tempSpace == NULL) {
cerr << "Unable to allocate memory in DiskIO::Read()! Terminating!\n";
exit(1);
} // if
// Read the data into temporary space, then copy it to buffer
ReadFile(fd, tempSpace, numBlocks * blockSize, &retval, NULL);
@@ -271,6 +275,10 @@ int DiskIO::Write(void* buffer, int numBytes) {
if ((numBytes % blockSize) != 0) numBlocks++;
tempSpace = new char [numBlocks * blockSize];
} // if/else
if (tempSpace == NULL) {
cerr << "Unable to allocate memory in DiskIO::Write()! Terminating!\n";
exit(1);
} // if
// Copy the data to my own buffer, then write it
for (i = 0; i < numBytes; i++) {

View File

@@ -34,8 +34,8 @@ The \fBgdisk\fR program employs a user interface similar to that of Linux's
capability of transforming MBR partitions or BSD disklabels into GPT
partitions. Like the original \fBfdisk\fR program, \fBgdisk\fR does not
modify disk structures until you explicitly write them to disk, so if you
make a mistake, you can exit from the program with the 'q' option to save
your partitions.
make a mistake, you can exit from the program with the 'q' option to leave
your partitions unmodified.
Ordinarily, \fBgdisk\fR operates on disk device files, such as
\fI/dev/sda\fR or \fI/dev/hda\fR under Linux, \fI/dev/disk0\fR under

26
gpt.cc
View File

@@ -122,15 +122,14 @@ GPTData & GPTData::operator=(const GPTData & orig) {
delete[] partitions;
partitions = new GPTPart [numParts];
if (partitions != NULL) {
if (partitions == NULL) {
cerr << "Error! Could not allocate memory for partitions in GPTData::operator=()!\n"
<< "Terminating!\n";
exit(1);
} // if
for (i = 0; i < numParts; i++) {
partitions[i] = orig.partitions[i];
}
} else {
numParts = 0;
cerr << "Error! Could not allocate memory for partitions in GPTData::operator=()!\n"
<< "Continuing, but strange problems may occur!\n";
} // if/else
return *this;
} // GPTData::operator=()
@@ -912,6 +911,10 @@ int GPTData::CheckTable(struct GPTHeader *header) {
if (myDisk.Seek(header->partitionEntriesLBA)) {
sizeOfParts = header->numParts * header->sizeOfPartitionEntries;
storage = new uint8_t[sizeOfParts];
if (storage == NULL) {
cerr << "Could not allocate memory in GPTData::CheckTable()! Terminating!\n";
exit(1);
} // if
if (myDisk.Read(storage, sizeOfParts) != (int) sizeOfParts) {
cerr << "Warning! Error " << errno << " reading partition table for CRC check!\n";
} else {
@@ -1223,6 +1226,10 @@ int GPTData::DestroyGPT(void) {
allOK = 0;
tableSize = numParts * mainHeader.sizeOfPartitionEntries;
emptyTable = new uint8_t[tableSize];
if (emptyTable == NULL) {
cerr << "Could not allocate memory in GPTData::CheckTable()! Terminating!\n";
exit(1);
} // if
memset(emptyTable, 0, tableSize);
if (allOK) {
sum = myDisk.Write(emptyTable, tableSize);
@@ -1604,7 +1611,7 @@ int GPTData::SetGPTSize(uint32_t numEntries) {
if (diskSize > 0)
CheckGPTSize();
} else { // Bad memory allocation
cerr << "Error allocating memory for partition table!\n";
cerr << "Error allocating memory for partition table! Size is unchanged!\n";
allOK = 0;
} // if/else
} // if/else
@@ -2324,11 +2331,6 @@ int SizesOK(void) {
cerr << "PartType is " << sizeof(GUIDData) << " bytes, should be 16 bytes; aborting!\n";
allOK = 0;
} // if
// Determine endianness; warn user if running on big-endian (PowerPC, etc.) hardware
// if (IsLittleEndian() == 0) {
// cerr << "\aRunning on big-endian hardware. Big-endian support is new and poorly"
// " tested!\n";
// } // if
return (allOK);
} // SizesOK()

3
gpt.h
View File

@@ -26,8 +26,6 @@
using namespace std;
class PartNotes;
/****************************************
* *
* GPTData class and related structures *
@@ -139,7 +137,6 @@ public:
virtual int XFormDisklabel(uint32_t partNum);
int XFormDisklabel(BSDData* disklabel);
int OnePartToMBR(uint32_t gptPart, int mbrPart); // add one partition to MBR. Returns 1 if successful
int PartsToMBR(PartNotes * notes);
// Adjust GPT structures WITHOUT user interaction...
int SetGPTSize(uint32_t numEntries);

View File

@@ -400,7 +400,11 @@ void GPTDataTextUI::MakeHybrid(void) {
<< "just hit the Enter key at the below prompt and your MBR partition table will\n"
<< "be untouched.\n\n\a";
hybridMBR.SetDisk(&myDisk);
// Use a local MBR structure, copying from protectiveMBR to keep its
// boot loader code intact....
hybridMBR = protectiveMBR;
hybridMBR.EmptyMBR(0);
// Now get the numbers of up to three partitions to add to the
// hybrid MBR....
cout << "Type from one to three GPT partition numbers, separated by spaces, to be\n"
@@ -424,9 +428,9 @@ void GPTDataTextUI::MakeHybrid(void) {
hybridPart.SetInclusion(PRIMARY);
cout << "Set the bootable flag? ";
if (GetYN() == 'Y')
hybridPart.SetStatus(1);
hybridPart.SetStatus(0x80);
else
hybridPart.SetStatus(0);
hybridPart.SetStatus(0x00);
hybridPart.SetInclusion(PRIMARY);
} else {
cerr << "\nGPT partition #" << j + 1 << " does not exist; skipping.\n";
@@ -478,7 +482,7 @@ void GPTDataTextUI::MakeHybrid(void) {
int GPTDataTextUI::XFormToMBR(void) {
uint32_t i;
protectiveMBR.EmptyMBR();
protectiveMBR.EmptyMBR(0);
for (i = 0; i < numParts; i++) {
if (partitions[i].IsUsed()) {
protectiveMBR.MakePart(i, partitions[i].GetFirstLBA(),

2
mbr.h
View File

@@ -15,8 +15,6 @@
using namespace std;
// class PartNotes;
/****************************************
* *
* MBRData class and related structures *

View File

@@ -195,6 +195,8 @@ int PartType::AddType(uint16_t mbrType, const char * guidData, const char * name
} // if/else
lastType = tempType;
} else {
cerr << "Unable to allocate memory in PartType::AddType()! Partition type list will\n";
cerr << "be incomplete!\n";
allOK = 0;
} // if/else
return allOK;

View File

@@ -109,14 +109,23 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
// converts to sectors. For instance, with 512-byte sectors, "1K" converts
// to 2. If value includes a "+", adds low and subtracts 1; if SIValue
// inclues a "-", subtracts from high. If IeeeValue is empty, returns def.
// Returns final sector value. In case inValue works out to something that
// is not in the range of low to high (inclusive), returns high + 1; the
// calling function is responsible for checking the validity of this value.
// Returns final sector value. In case inValue is invalid, returns 0 (a
// sector value that's always is use on GPT and therefore invalid); and if
// inValue works out to something outside the range low-high, returns the
// computed value; the calling function is responsible for checking the
// validity of this value.
// NOTE: There's a difference in how GCC and VC++ treat oversized values
// (say, "999999999999999999999") read via the ">>" operator; GCC turns
// them into the maximum value for the type, whereas VC++ turns them into
// 0 values. The result is that IeeeToInt() returns UINT64_MAX when
// compiled with GCC (and so the value is rejected), whereas when VC++
// is used, the default value is returned.
uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high, uint64_t def) {
uint64_t response = def, bytesPerUnit = 1, mult = 1, divide = 1;
size_t foundAt = 0;
char suffix, plusFlag = ' ';
string suffixes = "KMGTPE";
int badInput = 0; // flag bad input; once this goes to 1, other values are irrelevant
if (sSize == 0) {
sSize = SECTOR_SIZE;
@@ -135,7 +144,8 @@ uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high,
// Extract numeric response and, if present, suffix
istringstream inString(inValue);
if (((inString.peek() >= '0') && (inString.peek() <= '9')) || (inString.peek() == -1)) {
if (((inString.peek() < '0') || (inString.peek() > '9')) && (inString.peek() != -1))
badInput = 1;
inString >> response >> suffix;
suffix = toupper(suffix);
@@ -143,7 +153,7 @@ uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high,
if ((inValue.length() == 0) || (response == 0)) {
response = def;
suffix = ' ';
plusFlag = 0;
plusFlag = ' ';
} // if
// Find multiplication and division factors for the suffix
@@ -155,25 +165,42 @@ uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high,
} // if
// Adjust response based on multiplier and plus flag, if present
if (mult > 1)
if (mult > 1) {
if (response > (UINT64_MAX / mult))
badInput = 1;
else
response *= mult;
else if (divide > 1)
} else if (divide > 1) {
response /= divide;
} // if/elseif
if (plusFlag == '+') {
// Recompute response based on low part of range (if default = high
// Recompute response based on low part of range (if default == high
// value, which should be the case when prompting for the end of a
// range) or the defaut value (if default != high, which should be
// the case for the first sector of a partition).
if (def == high)
response = response + low - UINT64_C(1);
if (def == high) {
if (response > 0)
response--;
if (response > (UINT64_MAX - low))
badInput = 1;
else
response = response + low;
} else {
if (response > (UINT64_MAX - def))
badInput = 1;
else
response = response + def;
} // if/else
} else if (plusFlag == '-') {
if (response > high)
badInput = 1;
else
response = high - response;
} // if
} else { // user input is invalid
response = high + UINT64_C(1);
} // if/else
if (badInput)
response = UINT64_C(0);
return response;
} // IeeeToInt()
@@ -185,7 +212,7 @@ uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high,
string BytesToIeee(uint64_t size, uint32_t sectorSize) {
float sizeInIeee;
unsigned int index = 0;
string units, prefixes = " KMGTPE";
string units, prefixes = " KMGTPEZ";
ostringstream theValue;
sizeInIeee = size * (float) sectorSize;
@@ -222,11 +249,14 @@ unsigned char StrToHex(const string & input, unsigned int position) {
// Returns 1 if input can be interpreted as a hexadecimal number --
// all characters must be spaces, digits, or letters A-F (upper- or
// lower-case), with at least one valid hexadecimal digit; otherwise
// lower-case), with at least one valid hexadecimal digit; with the
// exception of the first two characters, which may be "0x"; otherwise
// returns 0.
int IsHex(const string & input) {
int IsHex(string input) {
int isHex = 1, foundHex = 0, i;
if (input.substr(0, 2) == "0x")
input.erase(0, 2);
for (i = 0; i < (int) input.length(); i++) {
if ((input[i] < '0') || (input[i] > '9')) {
if ((input[i] < 'A') || (input[i] > 'F')) {
@@ -269,5 +299,8 @@ void ReverseBytes(void* theValue, int numBytes) {
for (i = 0; i < numBytes; i++)
((char*) theValue)[i] = tempValue[numBytes - i - 1];
delete[] tempValue;
} // if
} else {
cerr << "Could not allocate memory in ReverseBytes()! Terminating\n";
exit(1);
} // if/else
} // ReverseBytes()

View File

@@ -8,7 +8,7 @@
#ifndef __GPTSUPPORT
#define __GPTSUPPORT
#define GPTFDISK_VERSION "0.7.1"
#define GPTFDISK_VERSION "0.7.1.1"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64
@@ -63,7 +63,7 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
uint64_t IeeeToInt(string IeeeValue, uint64_t sSize, uint64_t low, uint64_t high, uint64_t def = 0);
string BytesToIeee(uint64_t size, uint32_t sectorSize = 1);
unsigned char StrToHex(const string & input, unsigned int position);
int IsHex(const string & input); // Returns 1 if input can be hexadecimal number....
int IsHex(string input); // Returns 1 if input can be hexadecimal number....
int IsLittleEndian(void); // Returns 1 if CPU is little-endian, 0 if it's big-endian
void ReverseBytes(void* theValue, int numBytes); // Reverses byte-order of theValue