diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2025-12-04 15:00:46 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2025-12-08 14:08:13 +0000 |
| commit | 792221630bf4e58fcd923547bab689f4497613d8 (patch) | |
| tree | df735c9ed34b7395f5d49a241d59124024a8ab08 | |
| parent | 0795e9b53cf5be68955b49dce87f4800fdfd4a89 (diff) | |
rtsold: Fix a buffer leak if we fail to read the default router sysctl
MFC after: 1 week
Reported by: Kevin Day <kevin@your.org>
| -rw-r--r-- | usr.sbin/rtsold/cap_sendmsg.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/rtsold/cap_sendmsg.c b/usr.sbin/rtsold/cap_sendmsg.c index 6e7f156fbe62..36c68b7ba78d 100644 --- a/usr.sbin/rtsold/cap_sendmsg.c +++ b/usr.sbin/rtsold/cap_sendmsg.c @@ -151,8 +151,10 @@ probe_defrouters(uint32_t ifindex, uint32_t linkid) buf = malloc(len); if (buf == NULL) return (-1); - if (sysctl(mib, nitems(mib), buf, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), buf, &len, NULL, 0) < 0) { + free(buf); return (-1); + } ep = (struct in6_defrouter *)(void *)(buf + len); for (p = (struct in6_defrouter *)(void *)buf; p < ep; p++) { if (ifindex != p->if_index) |
