Hi there,


We wanted to submit a memory leak bug report and am not sure whether this is
the best way of doing so or whether we should fix it ourselves and then
submit bug fix to you guys?



Main memory leak that we are sure about is in ssl/ssl_ciph.c :
load_builtin_compressions function:



                     *ssl_comp_methods=sk_SSL_COMP_new(sk_comp_cmp);   // <-
leak*

                     if (ssl_comp_methods != NULL)

                           {

                           comp=(SSL_COMP *)OPENSSL_malloc(sizeof
(SSL_COMP));

                           if (comp != NULL)

                                  {

                                  comp->method=COMP_zlib();

                                  if (*comp->method*

*                                         && comp->method->type == NID_undef
*)  // <- Leak if this condition is not met

                                         OPENSSL_free(comp);

                                  else

                                         {

                                         comp->id=SSL_COMP_ZLIB_IDX;

                                         comp->name=comp->method->name;


sk_SSL_COMP_push(ssl_comp_methods,comp);

                                         }

                                  }

                           }





This results in two blocks 16 and 20 bytes not being freed. There are four
other blocks of bigger size that we are quite sure are leaks too but not yet
100% sure. Will confirm some time.



Please let me know if you require any further info.



Cheers.

Eugene Manko.

Hi there,

 

We wanted to submit a memory leak bug report and am not sure whether this is the best way of doing so or whether we should fix it ourselves and then submit bug fix to you guys?

 

Main memory leak that we are sure about is in ssl/ssl_ciph.c : load_builtin_compressions function:

 

                     ssl_comp_methods=sk_SSL_COMP_new(sk_comp_cmp);   // <- leak

                     if (ssl_comp_methods != NULL)

                           {

                           comp=(SSL_COMP *)OPENSSL_malloc(sizeof(SSL_COMP));

                           if (comp != NULL)

                                  {

                                  comp->method=COMP_zlib();

                                  if (comp->method

                                         && comp->method->type == NID_undef)  // <- Leak if this condition is not met

                                         OPENSSL_free(comp);

                                  else

                                         {

                                         comp->id=SSL_COMP_ZLIB_IDX;

                                         comp->name=comp->method->name;

                                         sk_SSL_COMP_push(ssl_comp_methods,comp);

                                         }

                                  }

                           }

 

 

This results in two blocks 16 and 20 bytes not being freed. There are four other blocks of bigger size that we are quite sure are leaks too but not yet 100% sure. Will confirm some time.

 

Please let me know if you require any further info.

 

Cheers.

Eugene Manko.

Reply via email to