mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-30 22:05:23 +00:00
Don't trust client to provide a valid hostname. Be lenient in parsing client hostnames from lease file
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"$Id: confpars.c,v 1.42 1997/06/03 01:06:10 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
|
||||
"$Id: confpars.c,v 1.43 1997/06/10 05:49:14 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "dhcpd.h"
|
||||
@@ -1231,12 +1231,14 @@ struct lease *parse_lease_declaration (cfile)
|
||||
|
||||
case CLIENT_HOSTNAME:
|
||||
seenbit = 1024;
|
||||
lease.client_hostname =
|
||||
parse_host_name (cfile);
|
||||
if (!lease.client_hostname) {
|
||||
seenbit = 0;
|
||||
return (struct lease *)0;
|
||||
}
|
||||
token = peek_token (&val, cfile);
|
||||
if (token == STRING)
|
||||
lease.client_hostname =
|
||||
parse_string (cfile);
|
||||
else
|
||||
lease.client_hostname =
|
||||
parse_host_name (cfile);
|
||||
token = CLIENT_HOSTNAME;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@@ -42,7 +42,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"$Id: db.c,v 1.12 1997/06/08 03:08:29 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
|
||||
"$Id: db.c,v 1.13 1997/06/10 05:49:15 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "dhcpd.h"
|
||||
@@ -135,7 +135,7 @@ int write_lease (lease)
|
||||
}
|
||||
if (lease -> client_hostname) {
|
||||
errno = 0;
|
||||
fprintf (db_file, "\n\tclient-hostname %s;",
|
||||
fprintf (db_file, "\n\tclient-hostname \"%s\";",
|
||||
lease -> client_hostname);
|
||||
if (errno) {
|
||||
++errors;
|
||||
|
Reference in New Issue
Block a user