Package: cramfsswap Version: 1.3.1 Severity: normal Tags: patch Hi,
The source of present cramfsswap doesn't support 4096 numbers or
more of files.
It makes an error of cramfsswap when 4096 more files are in cramfs.
I wrote patch to solve this problem.
Could you apply this patch?
regards,
Nobuhiro
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.22 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages cramfsswap depends on:
ii libc6 2.6.1-1 GNU C Library: Shared libraries
ii zlib1g 1:1.2.3.3.dfsg-5 compression library - runtime
cramfsswap recommends no packages.
-- no debconf information
--
Nobuhiro Iwamatsu
[EMAIL PROTECTED]
[EMAIL PROTECTED]
GPG ID : 3170EBE9
--- cramfsswap.c.orig 2007-08-29 21:13:45.000000000 +0900
+++ cramfsswap.c 2007-08-29 21:27:02.000000000 +0900
@@ -33,8 +33,8 @@
uint8_t inode_in[12], inode_out[12];
struct cramfs_inode inode;
unsigned int filecnt, file, filepos, remaining, nblocks,
- fileoffset[MAXFILES], filesize[MAXFILES],
copybytes, readbytes, x;
+ unsigned int *fileoffset, *filesize;
unsigned char buffer[BUFFERSIZE], is_hostorder, host_is_le, file_is_le;
int infile, outfile;
int size;
@@ -154,6 +154,19 @@
filecnt = superblock_out[11];
printf("Filesystem contains %d files.\n", filecnt-1);
+ fileoffset = (unsigned int*)malloc( filecnt * sizeof( *fileoffset ));
+ if( fileoffset == NULL ){
+ perror("fileoffset malloc error");
+ exit(1);
+ }
+
+ filesize = (unsigned int*)malloc( filecnt * sizeof( *filesize ));
+ if( filesize == NULL ){
+ free( fileoffset ); fileoffset = NULL;
+ perror("filesize malloc error");
+ exit(1);
+ }
+
/* Set filepos (in words) */
filepos = 16;
@@ -334,7 +347,7 @@
if (mapping != MAP_FAILED) {
crc = crc32(0L, Z_NULL, 0);
mapping[8] = is_hostorder?bswap_32(crc):crc;
- crc = crc32(crc, (char *)mapping, size);
+ crc = crc32(crc, (unsigned char *)mapping, size);
printf("CRC: 0x%08x\n", crc);
mapping[8] = is_hostorder?bswap_32(crc):crc;
munmap(mapping, size);
pgpzu31jVC6di.pgp
Description: PGP signature

