Package: partclone
Version: 0.2.22-2
Severity: important
Tags: upstream patch

This bug is mentioned online once
http://sourceforge.net/projects/clonezilla/forums/forum/799287/topic/4500041
with the fix being to use an x86 version.  I can confirm that the x86 debian
package works from a chroot.
On amd64 hfsplusclone detects the hfs partition as being empty.
The bug is due to explicit use of long in hfsplusclone.h and expecting it to be
32-bit.
The attached patch resolves the amd64 bug for me and also still works in the
x86 chroot, tested by cloning and restoring an hfsplus partition.
This bug persists in the latest 0.2.24 upstream.



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-1-amd64 (SMP w/6 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages partclone depends on:
ii  e2fslibs           1.42~WIP-2011-07-02-1 ext2/ext3/ext4 file system librari
ii  libc6              2.13-10               Embedded GNU C Library: Shared lib
ii  libcomerr2         1.42~WIP-2011-07-02-1 common error description library
ii  libncursesw5       5.9-1                 shared libraries for terminal hand
ii  libntfs10          2.0.0-1+b1            library that provides common NTFS 
ii  libuuid1           2.19.1-4              Universally Unique ID library

partclone recommends no packages.

partclone suggests no packages.

-- no debconf information
diff -u orig-partclone-0.2.22/src//hfsplusclone.c partclone-0.2.22/src//hfsplusclone.c
--- orig-partclone-0.2.22/src//hfsplusclone.c	2011-03-28 00:19:59.000000000 -0700
+++ partclone-0.2.22/src//hfsplusclone.c	2011-08-05 10:23:56.000000000 -0700
@@ -128,8 +128,8 @@
     UInt32 bused = 0, bfree = 0, mused = 0;
     UInt32 block = 0, extent_block = 0, tb = 0, i = 0;
     int allocation_exten = 0;
-    long int allocation_start_block;
-    long int allocation_block_size;
+    UInt32 allocation_start_block;
+    UInt32 allocation_block_size;
     int start = 0;
     int bit_size = 1;
 
diff -u orig-partclone-0.2.22/src//hfsplusclone.h partclone-0.2.22/src//hfsplusclone.h
--- orig-partclone-0.2.22/src//hfsplusclone.h	2011-03-28 00:19:59.000000000 -0700
+++ partclone-0.2.22/src//hfsplusclone.h	2011-08-05 10:23:56.000000000 -0700
@@ -11,11 +11,10 @@
  * (at your option) any later version.
  */
 
-
-typedef unsigned char      UInt8;
-typedef unsigned short int UInt16;
-typedef unsigned long int       UInt32;
-typedef unsigned long long int  UInt64;
+typedef uint8_t  UInt8;
+typedef uint16_t UInt16;
+typedef uint32_t UInt32;
+typedef uint64_t UInt64;
 
 typedef UInt32 HFSCatalogNodeID;
 

Reply via email to