diff --git a/libclamav/libmspack-0.5alpha/mspack/cabd.c b/libclamav/libmspack-0.5alpha/mspack/cabd.c index 97c647627..fdcc265b6 100644 --- a/libclamav/libmspack-0.5alpha/mspack/cabd.c +++ b/libclamav/libmspack-0.5alpha/mspack/cabd.c @@ -441,6 +441,7 @@ static int cabd_read_headers(struct mspack_system *sys, return MSPACK_ERR_NOMEMORY; } + file->folder = NULL; file->next = NULL; file->length = EndGetI32(&buf[cffile_UncompressedSize]); file->attribs = EndGetI16(&buf[cffile_Attribs]); @@ -1008,6 +1009,8 @@ static int cabd_extract(struct mscab_decompressor *base, if ( (file->offset > CAB_LENGTHMAX) || (file->length > CAB_LENGTHMAX) || ((file->offset + file->length) > CAB_LENGTHMAX)) { + sys->message(NULL, "ERROR; file \"%s\" cannot be extracted, " + "invalid file offset and length.", file->filename); return self->error = MSPACK_ERR_DATAFORMAT; } diff --git a/libclamav/libmspack.c b/libclamav/libmspack.c index fe818f301..972212165 100644 --- a/libclamav/libmspack.c +++ b/libclamav/libmspack.c @@ -8,6 +8,7 @@ #include #include #include +#include #include @@ -255,8 +256,11 @@ static off_t mspack_fmap_tell(struct mspack_file *file) static void mspack_fmap_message(struct mspack_file *file, const char *fmt, ...) { + va_list argList; UNUSEDPARAM(file); - cli_dbgmsg("%s() %s\n", __func__, fmt); + va_start(argList, fmt); + cli_dbgmsg(fmt, argList ); + va_end(argList); } static void *mspack_fmap_alloc(struct mspack_system *self, size_t num) {