summaryrefslogtreecommitdiffstats
path: root/programs/lz4io.c
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2015-03-15 00:42:27 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2015-03-15 00:42:27 (GMT)
commit45b0642bf54718d2b57dd61cb606b154afc0ab26 (patch)
treef5321a260b8491e9f233166402b92f8c4ff68fb0 /programs/lz4io.c
parenta18fb4392a9f249528a4071a5583e17668d92872 (diff)
downloadlz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.zip
lz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.tar.gz
lz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.tar.bz2
scan-build tests
Diffstat (limited to 'programs/lz4io.c')
-rw-r--r--[-rwxr-xr-x]programs/lz4io.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/programs/lz4io.c b/programs/lz4io.c
index 94bf5ea..50eb035 100755..100644
--- a/programs/lz4io.c
+++ b/programs/lz4io.c
@@ -63,7 +63,7 @@
# include <fcntl.h> /* _O_BINARY */
# include <io.h> /* _setmode, _fileno, _get_osfhandle */
# define SET_BINARY_MODE(file) _setmode(_fileno(file), _O_BINARY)
-# include <Windows.h> /* DeviceIoControl, HANDLE, FSCTL_SET_SPARSE */
+# include <Windows.h> /* DeviceIoControl, HANDLE, FSCTL_SET_SPARSE */
# define SET_SPARSE_FILE_MODE(file) { DWORD dw; DeviceIoControl((HANDLE) _get_osfhandle(_fileno(file)), FSCTL_SET_SPARSE, 0, 0, 0, 0, &dw, 0); }
# if defined(_MSC_VER) && (_MSC_VER >= 1400) /* Avoid MSVC fseek()'s 2GiB barrier */
# define fseek _fseeki64
@@ -465,11 +465,12 @@ int LZ4IO_compressFilename(const char* input_filename, const char* output_filena
}
+#define FNSPACE 30
int LZ4IO_compressMultipleFilenames(const char** inFileNamesTable, int ifntSize, const char* suffix, int compressionlevel)
{
int i;
- char* outFileName = NULL;
- size_t ofnSize = 0;
+ char* outFileName = (char*)malloc(FNSPACE);
+ size_t ofnSize = FNSPACE;
const size_t suffixSize = strlen(suffix);
for (i=0; i<ifntSize; i++)
@@ -530,15 +531,16 @@ static unsigned long long decodeLegacyStream(FILE* finput, FILE* foutput)
/* Read Block */
sizeCheck = fread(in_buff, 1, blockSize, finput);
+ if (sizeCheck!=blockSize) EXM_THROW(52, "Read error : cannot access compressed block !");
/* Decode Block */
decodeSize = LZ4_decompress_safe(in_buff, out_buff, blockSize, LEGACY_BLOCKSIZE);
- if (decodeSize < 0) EXM_THROW(52, "Decoding Failed ! Corrupted input detected !");
+ if (decodeSize < 0) EXM_THROW(53, "Decoding Failed ! Corrupted input detected !");
filesize += decodeSize;
/* Write Block */
sizeCheck = fwrite(out_buff, 1, decodeSize, foutput);
- if (sizeCheck != (size_t)decodeSize) EXM_THROW(53, "Write error : cannot write decoded block into output\n");
+ if (sizeCheck != (size_t)decodeSize) EXM_THROW(54, "Write error : cannot write decoded block into output\n");
}
/* Free */
@@ -721,9 +723,9 @@ int LZ4IO_decompressFilename(const char* input_filename, const char* output_file
get_fileHandle(input_filename, output_filename, &finput, &foutput);
/* sparse file */
- if (g_sparseFileSupport && foutput)
- {
- SET_SPARSE_FILE_MODE(foutput);
+ if (g_sparseFileSupport && foutput)
+ {
+ SET_SPARSE_FILE_MODE(foutput);
}
/* Loop over multiple streams */