Commit 8b591c2f authored by Bodo Möller's avatar Bodo Möller
Browse files

fix memory leak in memory debuggin code ...

Submitted by: Nils Larsch
parent 8f4a23e3
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -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);
				}