Bug tracker
Se descubrir um bug no ClamAV, por favor verifique-o contra a última versão do código .
Se ainda não foi corrigido, visite o seguidor de bugs .
Por favor não informe nenhum bug relacionado com programas derivados do ClamAV e distribuido por terceiros (i.e. versões que não mantemos directamente) porque não temos controlo sobre eles.
Em vez disso contacte os seus programadores.
Segue a informação que deve incluir num relatório de erro (listado em ordem de importância):
- Endereço e-mail: um endereço de correio activo para que os programadores possam entrar em contacto consigo para obter informação adicional e notificá-lo quando o problema esteja resolvido.
- Versão do ClamAV: o resultado de
clamscan -V
- Detalhes do sistema: especificações completas do sistema, i.e. o resultado de:
uname -mrsp
- Versões das bibliotecas: a versão da sua libc e possivelmenta da sua zlib
- Como reproduzir o problema: se o problema só acontece com um determinado ficheiro, anexe-o à mensagem. Não se esqueca de encriptá-lo pois poderá causar estragos nos servidores de correio entre nós.
Ex.:
A confidencialidade do conteúdo do ficheiro será mantida. Como alternativa, e caso o ficheiro seja muito grando para ser enviado por correio, pode colocá-lo num sítio web protegido e enviar-nos o URL e as credencias para que podamos aceder a ele.zip -P virus -e file.zip file.ext - Um Backtrace do clamscan: se possível envie-nos um backtrace obtido com gbd, o GNU Project Debugger.
Seguem instruções passo a passo para guiá-lo durante o processo:
Assumindo que encontra algo como isto:
$ clamscan --opções ficheiro
Segmentation fault
O primeiro passo a realizar é fazer com que o kernel escreva um core dump. Em shells tipo bourne (ex. bash):
$ ulimit -c unlimited
Para shells tipo C (ex. tcsh):
> limit coredumpsize unlimited
Agora já deve ver um mensagem de core dumped:
clamscan --opções ficheiro
Segmentation fault (core dumped)
No directório actual deve aparecer um ficheiro chamado core:
O próximo passo é carregar o ficheiro core no gdb:
$ gdb -core=core --args clamscan --opções ficheiro
(gdb)
Agora deverá ver a prompt do gdb. Corra o comando bt para que o gdb faça um backtrace completo.
Copie-o e cole-o no relatório de erro. Pode utilizar o comando q para sair do gdb.
- Backtrace do clamd:
Use o ps para saber o PID do clamd (primeiro número a contar da esquerda):
$ ps -aux (ou ps -elf no SysV)
clamav 24897 0.0 1.9 38032 10068 ? S Jan13 0:00 clamd
Anexe o gdb ao processo em execução:
$ gdb /usr/sbin/clamd 24897
Substituia 24897 com o pid do clamd e ajuste o caminho do clamd. Deverá ter uma prompt do gdb similar a:
(gdb)
Se quiser que o clamd continue a execução, até que por exemplo uma falha de segmentação ocurra, execute o comando gdb continue, e espere por um erro. Nesta altura o gdb deverá voltar ao seu prompt.
bt dar-lhe-á um backtrace da thread actual.
O comando info threads dir-lhe-á quantas threads existem.
O comando thread n muda a thread actual, depois do qual poderá utilizar o comando bt outra vez para conseguir o seu backtrace.
Basicamente, o que deve fazer será:
info threads para ter o número de threads e os seus identificadores
E para cada uma delas:
thread id_number
bt
Saia do gdb com o comando quit. Responda y às perguntas que o programa em execução fizer.
- Strace: opcionalmente, se julgar que pode ajudar, o resultado de um strace (não coberto aqui).
Aviso: a não ser que seja especificado, não mantemos nenhum destes pacotes directamente. Estes pacotes são contribuidos por terceiros.
Não nos responsabilizamos por eles!
Por favor entenda que NÃO aceitamos relatórios de erros que só afectam pacotes que não mantemos!
Quando em dúvida compile sempre o ClamAV a partir do código fonte.
Fazêmos o melhor para manter uma versão traduzida do nosso sítio actualizada, no entanto isso nem sempre é possível. Por favor consulte a versão em Inglês para obtêr a versão mais actualizada.
