Bug tracker
Если вы найдёте ошибку в ClamAV, пожалуйста, проверьте её на последнем git-коде.
Если она ещё на исправлена, посетите нашу систему слежения за ошибками.
Пожалуйста, не сообщайте о какой-либо ошибке, затрагивающей программу, основанную на ClamAV и распространяемую третьим лицом (т. е. сторонние программы, которые мы не поддерживаем прямо), потому что у нас нет влияния на них.
Вместо этого связывайтесь с их разработчиками.
Вот информация, которую вы должны включить в ваш отчёт об ошибке (в порядке значимости):
clamconf -nuname -mrspzip -P virus -e file.zip file.ext
Содержимое файла будет сохраняться конфиденциальным. Альтернативно, если файл слишком большой, чтобы отправить его по почте, вы можете загрузить его на защищённый паролем веб-сайт и отправить нам URL и данные для доступа к нему.
Вот пошаговые инструкции, которые проведут вас через процесс:
Предположим, вы получаете что-то вроде:
$ clamscan --некие-параметры некий_файл
Segmentation fault
Первое, что нужно сделать — заставить ядро записать дамп. Для bourne-подобных оболочек (напр., bash):
$ ulimit -c unlimited
Для C-подобных оболочек (напр., tcsh):
> limit coredumpsize unlimited
Теперь вы должны увидеть сообщение core dumped:
$ clamscan --некие-параметры некий_файл
Segmentation fault (core dumped)
Осмотр текущего рабочего каталога должен выявить файл, названный core.
Следующий шаг — загрузить core-файл в gdb:
$ gdb -core=core --args clamscan --некие-параметры некий_файл
(gdb)
Теперь вы должны видеть запрос gdb. Просто используйте команду bt в запросе, чтобы заставить gdb напечатать полную трассировку.
Скопируйте и вставьте её в отчёт об ошибке. Вы можете использовать команду q, чтобы покинуть gdb.
Используйте ps, чтобы получить PID clamd (первое число слева):
$ ps -aux (или ps -elf на SysV)
clamav 24897 0.0 1.9 38032 10068 ? S Jan13 0:00 clamd
Присоедините gdb к выполняющемуся процессу:
$ gdb /usr/sbin/clamd 24897
Замените 24897 на pid clamd и поправьте путь clamd. Теперь вы должны получить запрос gdb, как:
(gdb)
Если вы хотите, чтобы clamd продолжал выполняться, например, до тех пор, пока не произойдёт сбой сегментации, введите команду gdb continue и ждите ошибки, в этот момент gdb возвратится к своему запросу.
bt даст трассировку для текущего потока.
Команда info threads скажет вам, сколько есть потоков.
Команла thread n переведёт к указанному потоку, после чего вы снова можете использовать команду bt, чтобы получить его трассировку.
Итак, в основном вам нужно сделать:
info threads, чтобы получить число потоков и номера их идентификаторов.
Для каждого потока сделать:
thread номер_потока
bt
Выйти из gdb с помощью команды quit. Ответить y на вопрос о том, что программа всё ещё выполняется.
Предупреждение: если не утверждается иначе, мы не поддерживаем никакие сборки и реализации прямо. Эти сборки создаются третьими лицами.
Мы не берём на себя ответственность за них!
Пожалуйста, обратите внимание, что мы НЕ принимаем отчёты об ошибках, которые затрагивают только сборку, которую мы не поддерживаем!
В случае сомнения всегда собирайте ClamAV из исходных текстов.
Мы делаем всё зависящее от нас, чтобы сохранять актуальной локализованную версию этого веб-сайта, однако это не всегда возможно. Пожалуйста, смотрите последнюю информацию в английской версии.

