Ich habe eine Anwendung, die MD5 der Datei berechnen muss, habe ich Benutzte die OpenSSL-Bibliothek, Valgrind beschwert sich über einige Blöcke noch erreichbar.
Kompilieren Sie den folgenden Code:
%Vor%das Ausführen mit Valgrind das ist, was ich erhalte:
%Vor%hatte jemand die gleiche Erfahrung?
OpenSSL hat Aktionen, die Valgrind verwirren, wenn es nicht mit -DPURIFY kompiliert wird. Ist dies der Fehler, den Sie sehen?
OpenSSL enthält viele nicht initialisierte Variablen, Variablen und Speicher, die nie freigegeben wurden, Variablen, die nie gelöscht wurden und außerhalb des Bereichs nicht erreichbar sind, um sogar manuell freigegeben zu werden. Valgrind findet viele davon.
Das PURIFY-Flag bezieht sich nur auf die Funktion rand () _. Um eine Erkennung in Purify zu vermeiden, verwendet Openssl tatsächlich einen anderen Quellcode, wenn dieses Flag gesetzt ist. Nette Programmierung ... Vielleicht besser, um das Problem an erster Stelle zu beheben?!