summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2020-11-25 14:51:53 -0300
committerGitHub <noreply@github.com>2020-11-25 14:51:53 -0300
commit68cd847ee68e8b62d079cb0c683848ad87bdf6ee (patch)
treefb785540d3647b0248866b754f04abb072976ef8
parentf286bcf5fc8a7ee2df8ba65e84bde548e04de800 (diff)
parent59c5b83b585db9a22d6df9029fff1700147b757a (diff)
Merge pull request #7602 from donaldsharp/ldp_use_after_free
ldpd: Prevent usage after free
-rw-r--r--ldpd/lde.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/ldpd/lde.c b/ldpd/lde.c
index c2e11a0aee..5ed0ed4520 100644
--- a/ldpd/lde.c
+++ b/ldpd/lde.c
@@ -73,6 +73,7 @@ struct ldpd_conf *ldeconf;
struct nbr_tree lde_nbrs = RB_INITIALIZER(&lde_nbrs);
static struct imsgev *iev_ldpe;
+static struct imsgev iev_main_sync_data;
static struct imsgev *iev_main, *iev_main_sync;
/* lde privileges */
@@ -148,8 +149,8 @@ lde(void)
&iev_main->ev_read);
iev_main->handler_write = ldp_write_handler;
- if ((iev_main_sync = calloc(1, sizeof(struct imsgev))) == NULL)
- fatal(NULL);
+ memset(&iev_main_sync_data, 0, sizeof(iev_main_sync_data));
+ iev_main_sync = &iev_main_sync_data;
imsg_init(&iev_main_sync->ibuf, LDPD_FD_SYNC);
/* create base configuration */
@@ -203,7 +204,6 @@ lde_shutdown(void)
if (iev_ldpe)
free(iev_ldpe);
free(iev_main);
- free(iev_main_sync);
log_info("label decision engine exiting");