|
From: | David G. Pickett |
Subject: | [Bug-cpio] 64 bit system checksum bug still not fixed? |
Date: | Thu, 16 Feb 2012 17:03:54 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111229 Thunderbird/9.0 |
I went to use Gnu cpio 2.11 on
the very latest Ubuntu with my favorite options to duplicate a
tree, and got a shock: $ ( cd .src/ic6_int find | grep -Ev '\.svn([-/]|$)' | gcpio -oaH crc )|( mkdir .src/ic6_int-clean .src/ic6_int-clean rm -rf * .??* gcpio -idmH crc ) gcpio: eti_3rdparty/tarfiles/qpid-0.8.tar.gz: checksum error (0x1c9ebca74, should be 0xc9ebca74) gcpio: doc/Doc_Convert/xxe-pro-5_1_1-setup.exe: checksum error (0x170b19461, should be 0x70b19461) 1674013 blocks 1674013 blocks Googling around, I found the 2005 bug fix where the checksum is trimmed to 32 bits with '& 0xffffffff': http://lists.gnu.org/archive/html/bug-cpio/2005-10/msg00013.html So, I changed 2.11 files in a somewhat similar fashion, and it no longer complains. Maybe the middle bit is the winner. 1. What happened to the fix these 7 years? 2. Is this a proper (portable) fix? extern unsigned int crc; ".src/cpio-2.11/src/extern.h" line 78 of 219 --35%-- col 17 return crc & 0xffffffff ; ".src/cpio-2.11/src/copyout.c" line 62 of 898 --6%-- col 10 unsigned int crc; ".src/cpio-2.11/src/global.c" line 147 of 195 --75%-- col 10 |
[Prev in Thread] | Current Thread | [Next in Thread] |