mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Tighten checks in legal_hostname().
This commit is contained in:
12
src/util.c
12
src/util.c
@@ -142,17 +142,21 @@ static int check_name(char *in)
|
|||||||
int legal_hostname(char *name)
|
int legal_hostname(char *name)
|
||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
|
int first;
|
||||||
|
|
||||||
if (!check_name(name))
|
if (!check_name(name))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (; (c = *name); name++)
|
for (first = 1; (c = *name); name++, first = 0)
|
||||||
/* check for legal char a-z A-Z 0-9 - _ . */
|
/* check for legal char a-z A-Z 0-9 - _ . */
|
||||||
{
|
{
|
||||||
if ((c >= 'A' && c <= 'Z') ||
|
if ((c >= 'A' && c <= 'Z') ||
|
||||||
(c >= 'a' && c <= 'z') ||
|
(c >= 'a' && c <= 'z'))
|
||||||
(c >= '0' && c <= '9') ||
|
continue;
|
||||||
c == '-' || c == '_')
|
|
||||||
|
if (!first &&
|
||||||
|
((c >= '0' && c <= '9') ||
|
||||||
|
c == '-' || c == '_'))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* end of hostname part */
|
/* end of hostname part */
|
||||||
|
|||||||
Reference in New Issue
Block a user