Reza Roodsari via RT wrote:
> but they add up quickly :-)
>
> Recently I started using a packaged called gSoap
> (http://www.cs.fsu.edu/~engelen/soap.html) and using one of their sample
> apps I noticed some leaks in it.  I verified the memory leaks using purify
> and communicated them to Robert van Engelen, the author of gSoap.  After
> looking at the stack traces we agreed that the leak is in the OpenSLL code
> (or so we think).  I am including the source code for the sample
> application.  The description of the leaks are in leak{1,2,3}.txt.  All
> leaks originate from the call to:
>      r = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);

The problem is in stdsoap2.cpp. 
</snip , line 1465ff>
 }
  else if (soap->dhfile)
  { DH *r = 0;
    BIO *bio;
    bio = BIO_new_file(soap->dhfile, "r");
    if (!bio)
      return soap_set_receiver_error(soap, "SSL error", "Can't read DH file", 
SOAP_SSL_ERROR);
    r = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
    BIO_free(bio);
    if (SSL_CTX_set_tmp_dh(soap_ssl_ctx, r) < 0)
      return soap_set_receiver_error(soap, "SSL error", "Can't set DH 
parameters", SOAP_SSL_ERROR);
  }
</snap>
You must call DH_free(r) atfer SSL_CTX_set_tmp_dh() to decrease
the reference counter in the DH object.

Regards,
Nils

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to