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 all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o 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 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 fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
@@ -36,3 +36,535 @@ $(OBJS):
$(CRITICAL_CXX_FLAGS) $(CRITICAL_CXX_FLAGS)
# DO NOT DELETE # 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): 0.7.1 (3/21/2011):
------------------ ------------------

View File

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

View File

@@ -18,8 +18,6 @@
using namespace std; using namespace std;
class PartNotes;
/**************************************** /****************************************
* * * *
* MBRData class and related structures * * 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 the state is good, go ahead and load the main partition data....
if (state == bsd) { if (state == bsd) {
partitions = new struct BSDRecord[numParts * sizeof(struct BSDRecord)]; 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++) { for (i = 0; i < numParts; i++) {
// Once again, we use the buffer, but index it using a BSDRecord // Once again, we use the buffer, but index it using a BSDRecord
// pointer (dangerous, but effective).... // pointer (dangerous, but effective)....

View File

@@ -290,6 +290,10 @@ int DiskIO::Read(void* buffer, int numBytes) {
numBlocks++; numBlocks++;
tempSpace = new char [numBlocks * blockSize]; tempSpace = new char [numBlocks * blockSize];
} // if/else } // 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 // Read the data into temporary space, then copy it to buffer
retval = read(fd, tempSpace, numBlocks * blockSize); retval = read(fd, tempSpace, numBlocks * blockSize);
@@ -328,7 +332,11 @@ int DiskIO::Write(void* buffer, int numBytes) {
if ((numBytes % blockSize) != 0) numBlocks++; if ((numBytes % blockSize) != 0) numBlocks++;
tempSpace = new char [numBlocks * blockSize]; tempSpace = new char [numBlocks * blockSize];
} // if/else } // 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 // Copy the data to my own buffer, then write it
memcpy(tempSpace, buffer, numBytes); memcpy(tempSpace, buffer, numBytes);
for (i = numBytes; i < numBlocks * blockSize; i++) { for (i = numBytes; i < numBlocks * blockSize; i++) {

View File

@@ -230,7 +230,11 @@ int DiskIO::Read(void* buffer, int numBytes) {
numBlocks++; numBlocks++;
tempSpace = new char [numBlocks * blockSize]; tempSpace = new char [numBlocks * blockSize];
} // if/else } // 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 // Read the data into temporary space, then copy it to buffer
ReadFile(fd, tempSpace, numBlocks * blockSize, &retval, NULL); ReadFile(fd, tempSpace, numBlocks * blockSize, &retval, NULL);
for (i = 0; i < numBytes; i++) { for (i = 0; i < numBytes; i++) {
@@ -271,6 +275,10 @@ int DiskIO::Write(void* buffer, int numBytes) {
if ((numBytes % blockSize) != 0) numBlocks++; if ((numBytes % blockSize) != 0) numBlocks++;
tempSpace = new char [numBlocks * blockSize]; tempSpace = new char [numBlocks * blockSize];
} // if/else } // 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 // Copy the data to my own buffer, then write it
for (i = 0; i < numBytes; i++) { 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 capability of transforming MBR partitions or BSD disklabels into GPT
partitions. Like the original \fBfdisk\fR program, \fBgdisk\fR does not partitions. Like the original \fBfdisk\fR program, \fBgdisk\fR does not
modify disk structures until you explicitly write them to disk, so if you 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 make a mistake, you can exit from the program with the 'q' option to leave
your partitions. your partitions unmodified.
Ordinarily, \fBgdisk\fR operates on disk device files, such as 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 \fI/dev/sda\fR or \fI/dev/hda\fR under Linux, \fI/dev/disk0\fR under

30
gpt.cc
View File

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

3
gpt.h
View File

@@ -26,8 +26,6 @@
using namespace std; using namespace std;
class PartNotes;
/**************************************** /****************************************
* * * *
* GPTData class and related structures * * GPTData class and related structures *
@@ -139,7 +137,6 @@ public:
virtual int XFormDisklabel(uint32_t partNum); virtual int XFormDisklabel(uint32_t partNum);
int XFormDisklabel(BSDData* disklabel); int XFormDisklabel(BSDData* disklabel);
int OnePartToMBR(uint32_t gptPart, int mbrPart); // add one partition to MBR. Returns 1 if successful 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... // Adjust GPT structures WITHOUT user interaction...
int SetGPTSize(uint32_t numEntries); 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" << "just hit the Enter key at the below prompt and your MBR partition table will\n"
<< "be untouched.\n\n\a"; << "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 // Now get the numbers of up to three partitions to add to the
// hybrid MBR.... // hybrid MBR....
cout << "Type from one to three GPT partition numbers, separated by spaces, to be\n" 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); hybridPart.SetInclusion(PRIMARY);
cout << "Set the bootable flag? "; cout << "Set the bootable flag? ";
if (GetYN() == 'Y') if (GetYN() == 'Y')
hybridPart.SetStatus(1); hybridPart.SetStatus(0x80);
else else
hybridPart.SetStatus(0); hybridPart.SetStatus(0x00);
hybridPart.SetInclusion(PRIMARY); hybridPart.SetInclusion(PRIMARY);
} else { } else {
cerr << "\nGPT partition #" << j + 1 << " does not exist; skipping.\n"; cerr << "\nGPT partition #" << j + 1 << " does not exist; skipping.\n";
@@ -478,7 +482,7 @@ void GPTDataTextUI::MakeHybrid(void) {
int GPTDataTextUI::XFormToMBR(void) { int GPTDataTextUI::XFormToMBR(void) {
uint32_t i; uint32_t i;
protectiveMBR.EmptyMBR(); protectiveMBR.EmptyMBR(0);
for (i = 0; i < numParts; i++) { for (i = 0; i < numParts; i++) {
if (partitions[i].IsUsed()) { if (partitions[i].IsUsed()) {
protectiveMBR.MakePart(i, partitions[i].GetFirstLBA(), protectiveMBR.MakePart(i, partitions[i].GetFirstLBA(),

2
mbr.h
View File

@@ -15,8 +15,6 @@
using namespace std; using namespace std;
// class PartNotes;
/**************************************** /****************************************
* * * *
* MBRData class and related structures * * 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 } // if/else
lastType = tempType; lastType = tempType;
} else { } else {
cerr << "Unable to allocate memory in PartType::AddType()! Partition type list will\n";
cerr << "be incomplete!\n";
allOK = 0; allOK = 0;
} // if/else } // if/else
return allOK; 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 // converts to sectors. For instance, with 512-byte sectors, "1K" converts
// to 2. If value includes a "+", adds low and subtracts 1; if SIValue // to 2. If value includes a "+", adds low and subtracts 1; if SIValue
// inclues a "-", subtracts from high. If IeeeValue is empty, returns def. // inclues a "-", subtracts from high. If IeeeValue is empty, returns def.
// Returns final sector value. In case inValue works out to something that // Returns final sector value. In case inValue is invalid, returns 0 (a
// is not in the range of low to high (inclusive), returns high + 1; the // sector value that's always is use on GPT and therefore invalid); and if
// calling function is responsible for checking the validity of this value. // 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 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; uint64_t response = def, bytesPerUnit = 1, mult = 1, divide = 1;
size_t foundAt = 0; size_t foundAt = 0;
char suffix, plusFlag = ' '; char suffix, plusFlag = ' ';
string suffixes = "KMGTPE"; string suffixes = "KMGTPE";
int badInput = 0; // flag bad input; once this goes to 1, other values are irrelevant
if (sSize == 0) { if (sSize == 0) {
sSize = SECTOR_SIZE; sSize = SECTOR_SIZE;
@@ -135,45 +144,63 @@ uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high,
// Extract numeric response and, if present, suffix // Extract numeric response and, if present, suffix
istringstream inString(inValue); istringstream inString(inValue);
if (((inString.peek() >= '0') && (inString.peek() <= '9')) || (inString.peek() == -1)) { if (((inString.peek() < '0') || (inString.peek() > '9')) && (inString.peek() != -1))
inString >> response >> suffix; badInput = 1;
suffix = toupper(suffix); inString >> response >> suffix;
suffix = toupper(suffix);
// If no response, or if response == 0, use default (def)
if ((inValue.length() == 0) || (response == 0)) { // If no response, or if response == 0, use default (def)
response = def; if ((inValue.length() == 0) || (response == 0)) {
suffix = ' '; response = def;
plusFlag = 0; suffix = ' ';
} // if plusFlag = ' ';
} // if
// Find multiplication and division factors for the suffix
foundAt = suffixes.find(suffix); // Find multiplication and division factors for the suffix
if (foundAt != string::npos) { foundAt = suffixes.find(suffix);
bytesPerUnit = UINT64_C(1) << (10 * (foundAt + 1)); if (foundAt != string::npos) {
mult = bytesPerUnit / sSize; bytesPerUnit = UINT64_C(1) << (10 * (foundAt + 1));
divide = sSize / bytesPerUnit; mult = bytesPerUnit / sSize;
} // if divide = sSize / bytesPerUnit;
} // if
// Adjust response based on multiplier and plus flag, if present
if (mult > 1) // Adjust response based on multiplier and plus flag, if present
if (mult > 1) {
if (response > (UINT64_MAX / mult))
badInput = 1;
else
response *= mult; response *= mult;
else if (divide > 1) } else if (divide > 1) {
response /= divide; response /= divide;
if (plusFlag == '+') { } // if/elseif
// Recompute response based on low part of range (if default = high
// value, which should be the case when prompting for the end of a if (plusFlag == '+') {
// range) or the defaut value (if default != high, which should be // Recompute response based on low part of range (if default == high
// the case for the first sector of a partition). // value, which should be the case when prompting for the end of a
if (def == high) // range) or the defaut value (if default != high, which should be
response = response + low - UINT64_C(1); // the case for the first sector of a partition).
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 else
response = response + def; response = response + def;
} else if (plusFlag == '-') { } // if/else
} else if (plusFlag == '-') {
if (response > high)
badInput = 1;
else
response = high - response; response = high - response;
} // if } // if
} else { // user input is invalid
response = high + UINT64_C(1); if (badInput)
} // if/else response = UINT64_C(0);
return response; return response;
} // IeeeToInt() } // 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) { string BytesToIeee(uint64_t size, uint32_t sectorSize) {
float sizeInIeee; float sizeInIeee;
unsigned int index = 0; unsigned int index = 0;
string units, prefixes = " KMGTPE"; string units, prefixes = " KMGTPEZ";
ostringstream theValue; ostringstream theValue;
sizeInIeee = size * (float) sectorSize; 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 -- // Returns 1 if input can be interpreted as a hexadecimal number --
// all characters must be spaces, digits, or letters A-F (upper- or // 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. // returns 0.
int IsHex(const string & input) { int IsHex(string input) {
int isHex = 1, foundHex = 0, i; int isHex = 1, foundHex = 0, i;
if (input.substr(0, 2) == "0x")
input.erase(0, 2);
for (i = 0; i < (int) input.length(); i++) { for (i = 0; i < (int) input.length(); i++) {
if ((input[i] < '0') || (input[i] > '9')) { if ((input[i] < '0') || (input[i] > '9')) {
if ((input[i] < 'A') || (input[i] > 'F')) { if ((input[i] < 'A') || (input[i] > 'F')) {
@@ -269,5 +299,8 @@ void ReverseBytes(void* theValue, int numBytes) {
for (i = 0; i < numBytes; i++) for (i = 0; i < numBytes; i++)
((char*) theValue)[i] = tempValue[numBytes - i - 1]; ((char*) theValue)[i] = tempValue[numBytes - i - 1];
delete[] tempValue; delete[] tempValue;
} // if } else {
cerr << "Could not allocate memory in ReverseBytes()! Terminating\n";
exit(1);
} // if/else
} // ReverseBytes() } // ReverseBytes()

View File

@@ -8,7 +8,7 @@
#ifndef __GPTSUPPORT #ifndef __GPTSUPPORT
#define __GPTSUPPORT #define __GPTSUPPORT
#define GPTFDISK_VERSION "0.7.1" #define GPTFDISK_VERSION "0.7.1.1"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64 // 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); 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); string BytesToIeee(uint64_t size, uint32_t sectorSize = 1);
unsigned char StrToHex(const string & input, unsigned int position); 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 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 void ReverseBytes(void* theValue, int numBytes); // Reverses byte-order of theValue