| 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 |
|
} |