summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkus <markus@openbsd.org>2014-05-05 16:13:12 +0000
committermarkus <markus@openbsd.org>2014-05-05 16:13:12 +0000
commit74214e592334c77c26472d49b0ef2e556123947f (patch)
treedaeedce88bade086ff4dec81c8e94ebe06718471
parentKill memory debug calls that are now noops. While here, nuke an #if 0 and (diff)
downloadwireguard-openbsd-74214e592334c77c26472d49b0ef2e556123947f.tar.xz
wireguard-openbsd-74214e592334c77c26472d49b0ef2e556123947f.zip
don't leak on pid mismatch; ok mikeb
-rw-r--r--sbin/iked/pfkey.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sbin/iked/pfkey.c b/sbin/iked/pfkey.c
index a959660cbeb..9cb9703cff1 100644
--- a/sbin/iked/pfkey.c
+++ b/sbin/iked/pfkey.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfkey.c,v 1.31 2014/05/05 08:23:57 blambert Exp $ */
+/* $OpenBSD: pfkey.c,v 1.32 2014/05/05 16:13:12 markus Exp $ */
/*
* Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org>
@@ -1117,8 +1117,10 @@ pfkey_reply(int sd, u_int8_t **datap, ssize_t *lenp)
/* ignore messages for other processes */
if (hdr.sadb_msg_pid != 0 &&
- hdr.sadb_msg_pid != (u_int32_t)getpid())
+ hdr.sadb_msg_pid != (u_int32_t)getpid()) {
+ free(data);
continue;
+ }
/* not the reply, enqueue */
if ((pm = malloc(sizeof(*pm))) == NULL) {