char filename[filelen+1];
int error,crc,len,comp_size=data_size;
uLongf destlen=data_size+data_size/500+12;
- char compbuffer[destlen];
+ char *compbuffer;
+
+ compbuffer = malloc(destlen);
+ if (!compbuffer) {
+ fprintf(stderr, "No more memory.\n");
+ exit (1);
+ }
crc=crc32(0, NULL, 0);
crc=crc32(crc, (unsigned char *)data, data_size);
fwrite(&cd, sizeof(cd), 1, zip_info->dir);
fwrite(filename, filelen, 1, zip_info->dir);
zip_info->dir_size+=sizeof(cd)+filelen;
+
+ free(compbuffer);
}
static int