diff options
author | 2013-06-04 08:16:10 +0000 | |
---|---|---|
committer | 2013-06-04 08:16:10 +0000 | |
commit | 7d590283b8aa94895487c34c1e917e81ed8eeb1c (patch) | |
tree | 451f49ebd7989ef61ee7f878aaf249575d12616a | |
parent | tweak previous; (diff) | |
download | wireguard-openbsd-7d590283b8aa94895487c34c1e917e81ed8eeb1c.tar.xz wireguard-openbsd-7d590283b8aa94895487c34c1e917e81ed8eeb1c.zip |
fix use-after-free in debug traces
-rw-r--r-- | usr.sbin/smtpd/mta.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/usr.sbin/smtpd/mta.c b/usr.sbin/smtpd/mta.c index 14689b42c4e..825afa1fcd8 100644 --- a/usr.sbin/smtpd/mta.c +++ b/usr.sbin/smtpd/mta.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mta.c,v 1.158 2013/06/03 16:04:03 eric Exp $ */ +/* $OpenBSD: mta.c,v 1.159 2013/06/04 08:16:10 eric Exp $ */ /* * Copyright (c) 2008 Pierre-Yves Ritschard <pyr@openbsd.org> @@ -1255,6 +1255,9 @@ mta_relay_unref(struct mta_relay *relay) log_debug("debug: mta: freeing %s", mta_relay_to_text(relay)); SPLAY_REMOVE(mta_relay_tree, &relays, relay); + while ((tree_poproot(&relay->connectors, NULL, (void**)&c))) + mta_connector_free(c); + free(relay->authlabel); free(relay->authtable); free(relay->backupname); @@ -1263,9 +1266,6 @@ mta_relay_unref(struct mta_relay *relay) free(relay->secret); free(relay->sourcetable); - while ((tree_poproot(&relay->connectors, NULL, (void**)&c))) - mta_connector_free(c); - if (evtimer_pending(&relay->ev, NULL)) evtimer_del(&relay->ev); |