fixed the longstanding myids memory leak
This commit is contained in:
@@ -66,6 +66,21 @@ init_id(void)
|
|||||||
set_myFQDN();
|
set_myFQDN();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* free id module
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
free_id(void)
|
||||||
|
{
|
||||||
|
enum myid_state s;
|
||||||
|
|
||||||
|
for (s = MYID_UNKNOWN; s <= MYID_SPECIFIED; s++)
|
||||||
|
{
|
||||||
|
free_id_content(&myids[s]);
|
||||||
|
free(myid_str[s]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
calc_myid_str(enum myid_state s)
|
calc_myid_str(enum myid_state s)
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -27,13 +27,13 @@ struct id {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern void init_id(void);
|
extern void init_id(void);
|
||||||
|
extern void free_id(void);
|
||||||
extern const struct id empty_id; /* ID_NONE */
|
extern const struct id empty_id; /* ID_NONE */
|
||||||
|
|
||||||
enum myid_state {
|
enum myid_state {
|
||||||
MYID_UNKNOWN, /* not yet figured out */
|
MYID_UNKNOWN, /* not yet figured out */
|
||||||
MYID_HOSTNAME, /* our current hostname */
|
MYID_HOSTNAME, /* our current hostname */
|
||||||
MYID_IP, /* our default IP address */
|
MYID_IP, /* our default IP address */
|
||||||
MYID_SPECIFIED /* as specified by ipsec.conf */
|
MYID_SPECIFIED /* as specified by ipsec.conf */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -707,6 +707,7 @@ exit_pluto(int status)
|
|||||||
stop_adns();
|
stop_adns();
|
||||||
free_md_pool();
|
free_md_pool();
|
||||||
free_crypto();
|
free_crypto();
|
||||||
|
free_id();
|
||||||
delete_lock();
|
delete_lock();
|
||||||
library_deinit();
|
library_deinit();
|
||||||
close_log();
|
close_log();
|
||||||
|
|||||||
Reference in New Issue
Block a user