fix checksum error on 64-bit machines (#171649)

This commit is contained in:
Peter Vrabec 2005-10-31 08:26:50 +00:00
parent 501abeb43f
commit d94a0b9b84
2 changed files with 39 additions and 1 deletions

33
cpio-2.6-checksum.patch Normal file
View File

@ -0,0 +1,33 @@
--- cpio-2.6/src/extern.h.checksum 2005-10-26 11:17:11.000000000 +0200
+++ cpio-2.6/src/extern.h 2005-10-26 11:15:42.000000000 +0200
@@ -66,7 +66,7 @@
extern int archive_des;
extern char *archive_name;
extern char *rsh_command_option;
-extern unsigned long crc;
+extern unsigned int crc;
extern int delayed_seek_count;
#ifdef DEBUG_CPIO
extern int debug_flag;
--- cpio-2.6/src/copyout.c.checksum 2005-10-26 11:17:11.000000000 +0200
+++ cpio-2.6/src/copyout.c 2005-10-26 11:20:01.000000000 +0200
@@ -311,7 +311,7 @@
file_hdr->c_gid, file_hdr->c_nlink, file_hdr->c_mtime,
file_hdr->c_filesize, file_hdr->c_dev_maj, file_hdr->c_dev_min,
file_hdr->c_rdev_maj, file_hdr->c_rdev_min, file_hdr->c_namesize,
- file_hdr->c_chksum);
+ file_hdr->c_chksum & 0xffffffff);
tape_buffered_write (ascii_header, out_des, 110L);
/* Write file name to output. */
--- cpio-2.6/src/global.c.checksum 2005-10-26 11:17:11.000000000 +0200
+++ cpio-2.6/src/global.c 2005-10-26 11:15:29.000000000 +0200
@@ -139,7 +139,7 @@
char *rsh_command_option = NULL;
/* CRC checksum. */
-unsigned long crc;
+unsigned int crc;
/* Input and output buffers. */
char *input_buffer, *output_buffer;

View File

@ -6,7 +6,7 @@
Summary: A GNU archiving program.
Name: cpio
Version: 2.6
Release: 8
Release: 9
License: GPL
Group: Applications/Archiving
URL: http://www.gnu.org/software/cpio/
@ -19,6 +19,7 @@ Patch17: cpio-2.6-umask.patch
Patch18: cpio-2.6-chmodRaceC.patch
Patch19: cpio-2.6-dirTraversal.patch
Patch20: cpio-2.6-warnings.patch
Patch21: cpio-2.6-checksum.patch
%ifnos linux
Prereq: /sbin/rmt
@ -51,6 +52,7 @@ Install cpio if you need a program to manage file archives.
%patch18 -p1 -b .chmodRaceC
%patch19 -p1 -b .dirTraversal
%patch20 -p1 -b .warnings
%patch21 -p1 -b .checksum
autoheader
@ -101,6 +103,9 @@ fi
%{_infodir}/*.info*
%changelog
* Mon Oct 31 2005 Peter Vrabec <pvrabec@redhat.com> 2.6-9
- fix checksum error on 64-bit machines (#171649)
* Fri Jul 01 2005 Peter Vrabec <pvrabec@redhat.com> 2.6-8
- fix large file support, archive >4GiB, archive members <4GiB (#160056)
- fix race condition holes, use mode 0700 for dir creation