X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/43d3f76921db4456cb18f6df8d5f1dcf1cb0dc0e..9833360b251571f82749c352f49d712c9c8322ad:/client/fpga_compress.c?ds=inline diff --git a/client/fpga_compress.c b/client/fpga_compress.c index 3d5ba7ca..aac589af 100644 --- a/client/fpga_compress.c +++ b/client/fpga_compress.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "zlib.h" #define MAX(a,b) ((a)>(b)?(a):(b)) @@ -66,8 +67,7 @@ static bool all_feof(FILE *infile[], uint8_t num_infiles) if (!feof(infile[i])) { return false; } - } - + } return true; } @@ -77,7 +77,7 @@ int zlib_compress(FILE *infile[], uint8_t num_infiles, FILE *outfile) uint8_t *fpga_config; uint32_t i; int ret; - uint8_t c; + int c; z_stream compressed_fpga_stream; fpga_config = malloc(num_infiles * FPGA_CONFIG_SIZE); @@ -87,10 +87,11 @@ int zlib_compress(FILE *infile[], uint8_t num_infiles, FILE *outfile) do { if (i >= num_infiles * FPGA_CONFIG_SIZE) { - fprintf(stderr, "Input files too big (total > %d bytes). These are probably not PM3 FPGA config files.\n", num_infiles*FPGA_CONFIG_SIZE); + fprintf(stderr, "Input files too big (total > %d bytes). These are probably not PM3 FPGA config files.\n", num_infiles * FPGA_CONFIG_SIZE); for(uint16_t j = 0; j < num_infiles; j++) { fclose(infile[j]); } + free(fpga_config); return(EXIT_FAILURE); } @@ -98,7 +99,7 @@ int zlib_compress(FILE *infile[], uint8_t num_infiles, FILE *outfile) for(uint16_t k = 0; k < FPGA_INTERLEAVE_SIZE; k++) { c = fgetc(infile[j]); if (!feof(infile[j])) { - fpga_config[i++] = c; + fpga_config[i++] = c &0xFF; } else if (num_infiles > 1) { fpga_config[i++] = '\0'; } @@ -112,6 +113,7 @@ int zlib_compress(FILE *infile[], uint8_t num_infiles, FILE *outfile) compressed_fpga_stream.avail_in = i; compressed_fpga_stream.zalloc = fpga_deflate_malloc; compressed_fpga_stream.zfree = fpga_deflate_free; + compressed_fpga_stream.opaque = Z_NULL; ret = deflateInit2(&compressed_fpga_stream, COMPRESS_LEVEL, @@ -138,7 +140,7 @@ int zlib_compress(FILE *infile[], uint8_t num_infiles, FILE *outfile) ret = deflate(&compressed_fpga_stream, Z_FINISH); } - fprintf(stderr, "compressed %lu input bytes to %u output bytes\n", i, compressed_fpga_stream.total_out); + fprintf(stderr, "compressed %u input bytes to %lu output bytes\n", i, compressed_fpga_stream.total_out); if (ret != Z_STREAM_END) { fprintf(stderr, "Error in deflate(): %d %s\n", ret, compressed_fpga_stream.msg); @@ -187,6 +189,7 @@ int zlib_decompress(FILE *infile, FILE *outfile) compressed_fpga_stream.avail_out = DECOMPRESS_BUF_SIZE; compressed_fpga_stream.zalloc = fpga_deflate_malloc; compressed_fpga_stream.zfree = fpga_deflate_free; + compressed_fpga_stream.opaque = Z_NULL; ret = inflateInit2(&compressed_fpga_stream, 0); @@ -195,7 +198,7 @@ int zlib_decompress(FILE *infile, FILE *outfile) compressed_fpga_stream.next_in = inbuf; uint16_t i = 0; do { - uint8_t c = fgetc(infile); + int c = fgetc(infile); if (!feof(infile)) { inbuf[i++] = c; compressed_fpga_stream.avail_in++;