summaryrefslogtreecommitdiffstats
path: root/source/a/cpio/cpio.32bit.crc.diff
blob: 8ae94e9831d390e50f6da0d6bdf994ad6d4d4232 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
From ccec71ec318fdf739f55858d5bffaf4fd6520036 Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <gray@gnu.org.ua>
Date: Mon, 20 Feb 2012 17:51:27 +0000
Subject: Always use 32 bit CRC

* src/cpiohdr.h (cpio_file_stat) <c_chksum>: Change type to
uint32_t.
* src/extern.h (crc): Change type to uint32_t.
* src/global.c: Likewise.
* src/copyout.c (read_for_checksum): Return uint32_t.
* src/copyin.c: Fix printf formats.
---
diff --git a/src/copyin.c b/src/copyin.c
index 3ab5dac..3282816 100644
--- a/src/copyin.c
+++ b/src/copyin.c
@@ -178,7 +178,7 @@ list_file(struct cpio_file_stat* file_hdr, int in_file_des)
 #endif
       if (crc != file_hdr->c_chksum)
 	{
-	  error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
+	  error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
 		 file_hdr->c_name, crc, file_hdr->c_chksum);
 	}
     }
@@ -525,7 +525,7 @@ copyin_regular_file (struct cpio_file_stat* file_hdr, int in_file_des)
       if (archive_format == arf_crcascii)
 	{
 	  if (crc != file_hdr->c_chksum)
-	    error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
+	    error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
 		   file_hdr->c_name, crc, file_hdr->c_chksum);
 	}
       tape_skip_padding (in_file_des, file_hdr->c_filesize);
@@ -540,7 +540,7 @@ copyin_regular_file (struct cpio_file_stat* file_hdr, int in_file_des)
   if (archive_format == arf_crcascii)
     {
       if (crc != file_hdr->c_chksum)
-	error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
+	error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
 	       file_hdr->c_name, crc, file_hdr->c_chksum);
     }
 
@@ -1436,7 +1436,7 @@ process_copy_in ()
 	    tape_skip_padding (in_file_des, file_hdr.c_filesize);
 	    if (crc != file_hdr.c_chksum)
 	      {
-		error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
+		error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
 		       file_hdr.c_name, crc, file_hdr.c_chksum);
 	      }
          /* Debian hack: -v and -V now work with --only-verify-crc.
diff --git a/src/copyout.c b/src/copyout.c
index ab6a243..a5a8931 100644
--- a/src/copyout.c
+++ b/src/copyout.c
@@ -33,10 +33,10 @@
 /* Read FILE_SIZE bytes of FILE_NAME from IN_FILE_DES and
    compute and return a checksum for them.  */
 
-static unsigned long
+static uint32_t
 read_for_checksum (int in_file_des, int file_size, char *file_name)
 {
-  unsigned long crc;
+  uint32_t crc;
   char buf[BUFSIZ];
   int bytes_left;
   int bytes_read;
diff --git a/src/cpiohdr.h b/src/cpiohdr.h
index 86ec988..9aa8ed9 100644
--- a/src/cpiohdr.h
+++ b/src/cpiohdr.h
@@ -123,7 +123,7 @@ struct cpio_file_stat /* Internal representation of a CPIO header */
   long c_rdev_maj;
   long c_rdev_min;
   size_t c_namesize;
-  unsigned long c_chksum;
+  uint32_t c_chksum;
   char *c_name;
   char *c_tar_linkname;
 };
diff --git a/src/extern.h b/src/extern.h
index be329ae..ef00242 100644
--- a/src/extern.h
+++ b/src/extern.h
@@ -75,7 +75,7 @@ extern char *new_media_message_after_number;
 extern int archive_des;
 extern char *archive_name;
 extern char *rsh_command_option;
-extern unsigned long crc;
+extern uint32_t crc;
 #ifdef DEBUG_CPIO
 extern int debug_flag;
 #endif
diff --git a/src/global.c b/src/global.c
index 29e7afc..e08e188 100644
--- a/src/global.c
+++ b/src/global.c
@@ -144,7 +144,7 @@ char *archive_name = NULL;
 char *rsh_command_option = NULL;
 
 /* CRC checksum.  */
-unsigned long crc;
+uint32_t crc;
 
 /* Input and output buffers.  */
 char *input_buffer, *output_buffer;
--
cgit v0.9.0.2