Ошибка в libclamav

283
24 июня 2017, 12:44

Прошу помощи с компиляцией clamav

Подключил библиотеки, скомпилировал. После запуска подключает базу, выводит кол-во сигнатур. Дальше крашится.

В дебагере нашел нужную строку:

if ((ret = cl_scandesc(fd, &virname, &size, engine, CL_SCAN_STDOPT)) == CL_VIRUS) { //!!!!!
    printf("Virus detected: %s\n", virname);
}

Ошибка:

Библиотека времени выполнения Microsoft Visual Studio C обнаружила неустранимую ошибку в file.exe

Компилятор - msvc++ 2017 Пробовал и x86, и x64 - результат тот же. Как исправить эту ошибку? Спасибо.

Answer 1

Используя clamav api, можно сканировать буфер, дескриптор или файл:

int cl_scanbuff(const char *buffer, unsigned int length,
const char **virname, const struct cl_node *root);
int cl_scandesc(int desc, const char **virname, unsigned
long int *scanned, const struct cl_node *root, const
struct cl_limits *limits, int options);
int cl_scanfile(const char *filename, const char **virname,
unsigned long int *scanned, const struct cl_node *root,
const struct cl_limits *limits, int options);

Заставить работать пример со сканированием дескриптора у меня так и не получилось (автор использовал gcc, я - msvc), поэтому я просто использовал функцию сканирования файла cl_scanfile. Заработало с первого раза.

READ ALSO
C++ Цикл while…do работает на англ не работает на рус

C++ Цикл while…do работает на англ не работает на рус

Почему такая программа выполняется корректно:

329
Решение задачи. Modular Calculator

Решение задачи. Modular Calculator

Задача : http://wwwcodeabbey

296
Как определить хеш рейт GPU?

Как определить хеш рейт GPU?

Как определить хеш рейт GPU? Например с помощью алгоритма sha256Можно определить средствами cocos2d? Или нужно использовать OpenCL?

427