1711 |
|
yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD; |
1712 |
|
}; |
1713 |
|
|
1714 |
– |
/* XXX - need check for illegal hostnames here */ |
1714 |
|
auth_spoof: SPOOF '=' QSTRING ';' |
1715 |
|
{ |
1716 |
|
if (conf_parser_ctx.pass == 2) |
1717 |
|
{ |
1718 |
|
MyFree(yy_conf->name); |
1719 |
|
|
1720 |
< |
if (strlen(yylval.string) < HOSTLEN) |
1720 |
> |
if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string)) |
1721 |
|
{ |
1722 |
|
DupString(yy_conf->name, yylval.string); |
1723 |
|
yy_aconf->flags |= CONF_FLAGS_SPOOF_IP; |
1724 |
|
} |
1725 |
|
else |
1726 |
|
{ |
1727 |
< |
ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN); |
1727 |
> |
ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it."); |
1728 |
|
yy_conf->name = NULL; |
1729 |
|
} |
1730 |
|
} |