2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-29 13:28:14 +00:00

Don't write leases that contain non-printable or whitespace characters.

This commit is contained in:
Ted Lemon 1998-08-05 19:32:20 +00:00
parent 1409f29058
commit 6fdff3b8eb

View File

@ -42,7 +42,7 @@
#ifndef lint
static char copyright[] =
"$Id: db.c,v 1.18 1998/03/15 20:46:22 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
"$Id: db.c,v 1.19 1998/08/05 19:32:20 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -61,6 +61,7 @@ int write_lease (lease)
struct tm *t;
char tbuf [64];
int errors = 0;
int i;
if (counting)
++count;
@ -137,6 +138,10 @@ int write_lease (lease)
}
}
if (lease -> client_hostname) {
for (i = 0; lease -> client_hostname [i]; i++)
if (lease -> client_hostname [i] < 33 ||
lease -> client_hostname [i] > 126)
goto bad_client_hostname;
errno = 0;
fprintf (db_file, "\n\tclient-hostname \"%s\";",
lease -> client_hostname);
@ -144,7 +149,13 @@ int write_lease (lease)
++errors;
}
}
bad_client_hostname:
if (lease -> hostname) {
for (i = 0; lease -> hostname [i]; i++)
if (lease -> hostname [i] < 33 ||
lease -> hostname [i] > 126)
goto bad_hostname;
errno = 0;
errno = 0;
fprintf (db_file, "\n\thostname \"%s\";",
lease -> hostname);
@ -152,6 +163,7 @@ int write_lease (lease)
++errors;
}
}
bad_hostname:
errno = 0;
fputs ("\n}\n", db_file);
if (errno) {