提交 9dc61049 编写于 作者: B Bodo Möller

fix memory leak in memory debuggin code ...

Submitted by: Nils Larsch
上级 055076cd
......@@ -102,6 +102,8 @@ typedef struct app_mem_info_st
int references;
} APP_INFO;
static void app_info_free(APP_INFO *);
static LHASH *amih=NULL; /* hash-table with those app_mem_info_st's
* that are at the top of their thread's stack
* (with `thread' as key);
......@@ -140,6 +142,18 @@ static unsigned long disabling_thread = 0; /* Valid iff num_disable > 0.
* thread named in disabling_thread).
*/
static void app_info_free(APP_INFO *inf)
{
if (--(inf->references) <= 0)
{
if (inf->next != NULL)
{
app_info_free(inf->next);
}
OPENSSL_free(inf);
}
}
int CRYPTO_mem_ctrl(int mode)
{
int ret=mh_mode;
......@@ -502,9 +516,7 @@ void CRYPTO_dbg_free(void *addr, int before_p)
mp->order, mp->addr, mp->num);
#endif
if (mp->app_info != NULL)
{
mp->app_info->references--;
}
app_info_free(mp->app_info);
OPENSSL_free(mp);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册