Check in crc_init needed by cksum. (Oops.)
authorRob Landley <rob@landley.net>
Sun, 4 Jan 2009 00:15:18 +0000 (18:15 -0600)
committerRob Landley <rob@landley.net>
Sun, 4 Jan 2009 00:15:18 +0000 (18:15 -0600)
lib/bunzip.c
lib/lib.c
lib/lib.h

index ae84289..18984af 100644 (file)
@@ -592,7 +592,7 @@ dataus_interruptus:
 int start_bunzip(struct bunzip_data **bdp, int src_fd, char *inbuf, int len)
 {
        struct bunzip_data *bd;
-       unsigned int i, j, c;
+       unsigned int i;
 
        // Figure out how much data to allocate.
        i = sizeof(struct bunzip_data);
@@ -609,13 +609,7 @@ int start_bunzip(struct bunzip_data **bdp, int src_fd, char *inbuf, int len)
                bd->in_fd = src_fd;
        }
 
-       // Init the CRC32 table (big endian)
-       for (i=0; i<256; i++) {
-               c = i<<24;
-               for (j=8; j; j--)
-                       c=c&0x80000000 ? (c<<1)^0x04c11db7 : (c<<1);
-               bd->crc32Table[i] = c;
-       }
+       crc_init(bd->crc32Table);
 
        // Ensure that file starts with "BZh".
     for (i=0;i<3;i++)
index 8f74289..f94d6fd 100644 (file)
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -718,3 +718,18 @@ void replace_tempfile(int fdin, int fdout, char **tempname)
        free(temp);
        *tempname = NULL;
 }
+
+// Create a 256 entry CRC32 lookup table.
+
+void crc_init(unsigned int *crc_table)
+{
+       unsigned int i;
+
+       // Init the CRC32 table (big endian)
+       for (i=0; i<256; i++) {
+               unsigned int j, c = i<<24;
+               for (j=8; j; j--)
+                       c=c&0x80000000 ? (c<<1)^0x04c11db7 : (c<<1);
+               crc_table[i] = c;
+       }
+}
index 70c0c48..2fcdaa4 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -96,6 +96,7 @@ void xsendfile(int in, int out);
 int copy_tempfile(int fdin, char *name, char **tempname);
 void delete_tempfile(int fdin, int fdout, char **tempname);
 void replace_tempfile(int fdin, int fdout, char **tempname);
+void crc_init(unsigned int *crc_table);
 
 // getmountlist.c
 struct mtab_list {