aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-04-27 20:03:09 +0000
committerMark Johnston <markj@FreeBSD.org>2026-04-29 14:39:27 +0000
commit8008e4b88daf37015d16c4ac709b91804b586575 (patch)
tree00be971de6bb077e747a5b4e01589021f39f60fd /sbin
parent8e8ddb05d07142e95cf84e32bf93b9ecb3f90283 (diff)
Diffstat (limited to 'sbin')
-rw-r--r--sbin/dhclient/dhclient.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
index 5d2a7453578b..719e20cffad9 100644
--- a/sbin/dhclient/dhclient.c
+++ b/sbin/dhclient/dhclient.c
@@ -1226,6 +1226,12 @@ packet_to_lease(struct packet *packet)
}
memcpy(lease->server_name, packet->raw->sname, DHCP_SNAME_LEN);
lease->server_name[DHCP_SNAME_LEN]='\0';
+ if (strchr(lease->server_name, '"') != NULL ||
+ strchr(lease->server_name, '\\') != NULL) {
+ warning("dhcpoffer: server name contains invalid characters.");
+ free_client_lease(lease);
+ return (NULL);
+ }
}
/* Ditto for the filename. */
@@ -1241,6 +1247,12 @@ packet_to_lease(struct packet *packet)
}
memcpy(lease->filename, packet->raw->file, DHCP_FILE_LEN);
lease->filename[DHCP_FILE_LEN]='\0';
+ if (strchr(lease->filename, '"') != NULL ||
+ strchr(lease->filename, '\\') != NULL) {
+ warning("dhcpoffer: filename contains invalid characters.");
+ free_client_lease(lease);
+ return (NULL);
+ }
}
return lease;
}