From 3894b14b3da692eccce03b0c5003311c987a35c1 Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 15 Jun 2026 17:09:29 +0000 Subject: [PATCH] Prevent the engine from sending us a negative amount of routes. Pointed out by Andrew Griffiths, thanks! --- sbin/dhcpleased/dhcpleased.c | 4 ++-- sbin/dhcpleased/dhcpleased.h | 4 ++-- sbin/dhcpleased/engine.h | 4 ++-- usr.sbin/dhcpleasectl/dhcpleasectl.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sbin/dhcpleased/dhcpleased.c b/sbin/dhcpleased/dhcpleased.c index 433f46d19a0..4ef6f073fb4 100644 --- a/sbin/dhcpleased/dhcpleased.c +++ b/sbin/dhcpleased/dhcpleased.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dhcpleased.c,v 1.44 2026/06/15 17:08:15 florian Exp $ */ +/* $OpenBSD: dhcpleased.c,v 1.45 2026/06/15 17:09:29 florian Exp $ */ /* * Copyright (c) 2017, 2021 Florian Obser @@ -1022,7 +1022,7 @@ configure_routes(uint8_t rtm_type, struct imsg_configure_interface *imsg) { struct sockaddr_in dst, mask, gw, ifa; in_addr_t addrnet, gwnet; - int i; + uint32_t i; memset(&ifa, 0, sizeof(ifa)); ifa.sin_family = AF_INET; diff --git a/sbin/dhcpleased/dhcpleased.h b/sbin/dhcpleased/dhcpleased.h index 9618a44f8a2..ee93d5390d3 100644 --- a/sbin/dhcpleased/dhcpleased.h +++ b/sbin/dhcpleased/dhcpleased.h @@ -1,4 +1,4 @@ -/* $OpenBSD: dhcpleased.h,v 1.20 2026/05/14 06:04:08 dgl Exp $ */ +/* $OpenBSD: dhcpleased.h,v 1.21 2026/06/15 17:09:29 florian Exp $ */ /* * Copyright (c) 2017, 2021 Florian Obser @@ -240,7 +240,7 @@ struct ctl_engine_info { struct in_addr requested_ip; struct in_addr mask; struct dhcp_route routes[MAX_DHCP_ROUTES]; - int routes_len; + uint32_t routes_len; struct in_addr nameservers[MAX_RDNS_COUNT]; uint32_t lease_time; uint32_t renewal_time; diff --git a/sbin/dhcpleased/engine.h b/sbin/dhcpleased/engine.h index 418de2383f0..8d935229d3c 100644 --- a/sbin/dhcpleased/engine.h +++ b/sbin/dhcpleased/engine.h @@ -1,4 +1,4 @@ -/* $OpenBSD: engine.h,v 1.3 2021/06/20 08:31:45 florian Exp $ */ +/* $OpenBSD: engine.h,v 1.4 2026/06/15 17:09:29 florian Exp $ */ /* * Copyright (c) 2021 Florian Obser @@ -26,7 +26,7 @@ struct imsg_configure_interface { char domainname[4 * 255 + 1]; char hostname[4 * 255 + 1]; struct dhcp_route routes[MAX_DHCP_ROUTES]; - int routes_len; + uint32_t routes_len; }; void engine(int, int); diff --git a/usr.sbin/dhcpleasectl/dhcpleasectl.c b/usr.sbin/dhcpleasectl/dhcpleasectl.c index b31e3b55345..0da9eeb04a3 100644 --- a/usr.sbin/dhcpleasectl/dhcpleasectl.c +++ b/usr.sbin/dhcpleasectl/dhcpleasectl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dhcpleasectl.c,v 1.13 2024/11/21 13:38:14 claudio Exp $ */ +/* $OpenBSD: dhcpleasectl.c,v 1.14 2026/06/15 17:09:29 florian Exp $ */ /* * Copyright (c) 2021 Florian Obser @@ -221,7 +221,7 @@ show_interface_msg(struct ctl_engine_info *cei) { struct timespec now, diff; time_t d, h, m, s; - int i; + uint32_t i; char buf[IF_NAMESIZE], *bufp; char ipbuf[INET_ADDRSTRLEN]; char maskbuf[INET_ADDRSTRLEN];