Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#1

OpenSSL - MemoryLeak bei Verwendung eines X509-Zertifikats

  Alt 5. Aug 2016, 13:02
Ich muss mich aktuell mit digitaler Signierung herumschlagen. Dazu verwende ich OpenSSL (libeay32.dll). Die verwendeten Header-Übersetzungen habe ich von hier. Jetzt ist mir ein Speicherleck aufgefallen, das sich hartnäckig hält.
Delphi-Quellcode:
procedure TMyClass.Verfify;
var
  Certificate: TBytes;
  CertStr: PPAnsiChar;
  Cert: PX509;
begin
  //...
  CertStr := @PAnsiChar(Certificate);
  Cert := d2i_X509(nil, CertStr, TC_LONG(Length(Certificate)));
  if Assigned(Cert) then
    try
      //Auskommentierter Code
    finally
      X509_free(Cert);
    end;
end;
Laut Doku dekrementiert X509_free den internen Referenzzähler auf die X509-Struktur und gibt diese bei Erreichen von 0 frei. Leider scheint dem nicht so zu sein, also mache ich wohl irgendetwas falsch. Kommentiere ich den Teil ab d2i_X509 bis X509_free aus, ist das Speicherleck weg, es muss also damit zu tun haben. Hat jemand einen Tipp für mich, die Speicherverwaltung von OpenSSL ist für mich doch recht gewöhnungsbedürftig?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat