Bug-Tracker

Wenn Du einen Programmierfehler in ClamAV findest dann kontrolliere erst ob dieser im aktuellen SVN Code noch enthalten ist.

Sollte dieser noch nicht behoben sein, dann gehe zu unserem Bug Tracker.

Bitte melde keine Fehler an Software die von ClamAV abgeleitet ist und von Dritten verbreitet wird (z.B. Portierungen die wir nicht selbst betreuen), weil wir keine Kontrolle über diese Software haben.
Kontaktiere deren Entwickler direkt.

Nachfolgend die Informationen die Du in einem Fehlerbericht angeben must (In Reihenfolge der Wichtigkeit):

  • Email Adresse: Eine funktionierende Email Adresse damit die Entwickler mit Dir in Verbindung treten können um weitere Details zu erfragen und um dir mitteilen zu können wann der Fehler behoben worden ist.
  • ClamAV Version: Die Ausgabe von:
    clamconf -n
  • System Details: Die volle Spezifikation Deines Systems, z.B. die Ausgabe von:
    uname -mrsp
  • Version der Bibliotheken: Die Version deiner libc und ggf. der zlib.
  • Reproduktion des Problems: Sollte der Fehler nur mit einer speziellen Datei nach zu vollziehen sein, dann hänge diese Datei an. Vergesse nicht diese zu encrypt andernfalls könntest Du Schaden an den Mailservern zwischen uns anrichten. Du kannst das z.B. so machen:
    zip -P virus -e file.zip file.ext

Der Inhalt dieser Datei wird auf jeden Fall vertraulich behandelt. Sollte die Datei zu groß sein um diese per Email zu senden, dann könnest Du auch sie auch auf eine passwort geschützte Webseite hochladen und uns die URL und die Zugangsdaten senden.

  • Backtrace von clamscan: Wenn möglich sende uns einen Backtrace vom gdb, dem GNU Project Debugger.

Hier ist eine Schritt für Schritt Anleitung die Dich durch diesen Prozess führt:

Nehmen wir an Du bekommst folgende Meldung:

$ clamscan --some-options some_file
Segmentation fault

Das Erste was Du tuen solltest ist den Kernel ein core dump schreiben lassen. Für bourne-like Shells (d.h. bash):

$ ulimit -c unlimited

Für eine C ähnliche Shell (d.h. tcsh):

> limit coredumpsize unlimited

Nun solltest Du die core dumped Meldung sehen:

$ clamscan --some-options some_file
Segmentation fault (core dumped)

In Deinem momentanen Arbeitsverzeichnis soll nun eine Datei namens core liegen.

Der nächste Schritt ist diese core Datei in den gdb zu laden:

$ gdb -core=core --args clamscan --some-options some_file
(gdb)

Nun solltest Du die gdb Eingabeaufforderung sehen. Benutze nur das bt Kommando um einen vollen Backtrace vom gdb angezeigt zu bekommen.
Kopiere diesen und füge ihn in die Fehlermeldung ein. Du kannst das Kommando q benutzen um den gdb zu verlassen.

  • Backtrace von clamd:

Benutze den Befehl ps um die PID von clamd zu bekommen (Die erste Nummer von links):

$ ps -aux (oder ps -elf on SysV)
clamav 24897 0.0 1.9 38032 10068 ? S Jan13 0:00 clamd

Hänge den gdb an den laufenden Prozess:

$ gdb /usr/sbin/clamd 24897

Die Nummer 24897 muß durch die PID des clamd Prozesses ersetzt werden. Ebenso muß der Pfad zu dem clamd Binary angepasst werden. Du solltest jetzt die gdb Eingabeaufforderung sehen:

(gdb)

Wenn Du willst das clamd weiter läuft bis z.B. ein segmentation fault auftritt, dann benutze das continue gdb Kommando und warte auf einen Fehler. Wenn dieser auftritt wird gdb zur Eingabeaufforderung zurück kehren.
bt liefert einen Backtrace des aktuellen Threads.
Das Kommando info threads zeigt die vorhanden Threads.
Mit dem Kommando thread n wechselst Du zu einem spezillen Thread, danach kannst Du für diesen mit dem Kommando bt ebenfalls einen Backtrace anzeigen lassen.

Also, du solltest folgendes machen:

info threads um die Anzahl der Threads und ihre ID Nummern zu bekommen

Für jeden Thread tue folgendes:

thread id_number
bt

Den gdb beendest Du mit quit. Antworte y wenn die Fragen nach noch laufenden Programmen kommt.

  • strace: Optional wenn Du denkst das die Ausgabe von strace hilfreich sein könnte. (strace wird hier nicht erklärt).

Warnung: Wir sind nicht direkt verantwortlich für die Pflege dieser
Pakete und Portierungen, es sei denn es wird ausdrücklich genannt.
Diese Pakete werden von Dritten beigesteuert.

Wir übernehmen keine Verantwortung dafür!

Bitte nimm zur Kenntnis das wir KEINE Fehlerberichte für Pakete die wir
nicht betreuen entgegen nehmen!

Im Zweifelsfall kompiliere Dir ClamAV aus den Quelltexten selbst.

Wir geben unser Bestes um die Übersetzungen dieser Webseite stets aktuell zu halten, leider ist das nicht immer möglich. Bitte beziehe Dich für die neusten Informationen immer auf die Englische Version.