diff --git a/crypto/dist/ipsec-tools/src/racoon/grabmyaddr.c b/crypto/dist/ipsec-tools/src/racoon/grabmyaddr.c index 1338587a745d..353cb7565c62 100644 --- a/crypto/dist/ipsec-tools/src/racoon/grabmyaddr.c +++ b/crypto/dist/ipsec-tools/src/racoon/grabmyaddr.c @@ -1,4 +1,4 @@ -/* $NetBSD: grabmyaddr.c,v 1.39 2020/11/25 14:15:41 christos Exp $ */ +/* $NetBSD: grabmyaddr.c,v 1.40 2023/02/27 13:39:09 kardel Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * Copyright (C) 2008 Timo Teras . @@ -849,7 +849,7 @@ kernel_sync() { caddr_t ref, buf, end; size_t bufsiz; - struct if_msghdr *ifm; + struct rt_msghdr *rtm; #define MIBSIZ 6 int mib[MIBSIZ] = { @@ -871,8 +871,10 @@ kernel_sync() if (sysctl(mib, MIBSIZ, buf, &bufsiz, NULL, 0) >= 0) { /* Parse both interfaces and addresses. */ - for (end = buf + bufsiz; buf < end; buf += ifm->ifm_msglen) { - ifm = (struct if_msghdr *) buf; + for (end = buf + bufsiz; buf < end; buf += rtm->rtm_msglen) { + rtm = (struct rt_msghdr *) buf; + if (rtm->rtm_version != RTM_VERSION) + continue; kernel_handle_message(buf); } } else {