/* returns 0 if successful, otherwise returns 1 upon error */
static int genRandomDict(U32 dictID, U32 seed, size_t dictSize, BYTE* fullDict){
/* allocate space for samples */
+ int ret = 0;
unsigned const numSamples = 4;
- BYTE samples[5000];
size_t sampleSizes[4];
+ BYTE* const samples = malloc(5000);
+ if (samples == NULL) {
+ DISPLAY("Error: could not allocate space for samples\n");
+ return 1;
+ }
/* generate samples */
{
BYTE* const dictContent = fullDict + headerSize;
if (dictContentSize < ZDICT_CONTENTSIZE_MIN || dictSize < ZDICT_DICTSIZE_MIN) {
DISPLAY("Error: dictionary size is too small\n");
- return 1;
+ ret = 1;
+ goto exitGenRandomDict;
}
/* init dictionary params */
if (ZDICT_isError(dictWriteSize)) {
DISPLAY("Could not finalize dictionary: %s\n", ZDICT_getErrorName(dictWriteSize));
- return 1;
+ ret = 1;
}
}
- return 0;
+exitGenRandomDict:
+ free(samples);
+ return ret;
}
static dictInfo initDictInfo(int useDict, size_t dictContentSize, BYTE* dictContent, U32 dictID){