ircd_lexer: fix crash with very large config option strings
This commit is contained in:
parent
b143df9ac4
commit
401cb2bb17
2 changed files with 4 additions and 4 deletions
|
@ -58,7 +58,7 @@ char *current_file = conffilebuf;
|
|||
|
||||
FILE *inc_fbfile_in[MAX_INCLUDE_DEPTH];
|
||||
|
||||
char linebuf[512];
|
||||
char yy_linebuf[16384];
|
||||
|
||||
#undef YY_INPUT
|
||||
|
||||
|
@ -79,7 +79,7 @@ include \.include{ws}(\<.*\>|\".*\")
|
|||
%%
|
||||
{include} { cinclude(); }
|
||||
"/*" { ccomment(); }
|
||||
\n.* { strcpy(linebuf, yytext+1); lineno++; yyless(1); }
|
||||
\n.* { rb_strlcpy(yy_linebuf, yytext+1, sizeof(yy_linebuf)); lineno++; yyless(1); }
|
||||
|
||||
{ws} ;
|
||||
{comment} { hashcomment(); }
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
struct config_server_hide ConfigServerHide;
|
||||
|
||||
extern int yyparse(void); /* defined in y.tab.c */
|
||||
extern char linebuf[];
|
||||
extern char yy_linebuf[16384]; /* defined in ircd_lexer.l */
|
||||
|
||||
static rb_bh *confitem_heap = NULL;
|
||||
|
||||
|
@ -1639,7 +1639,7 @@ yyerror(const char *msg)
|
|||
{
|
||||
char newlinebuf[BUFSIZE];
|
||||
|
||||
strip_tabs(newlinebuf, linebuf, strlen(linebuf));
|
||||
strip_tabs(newlinebuf, yy_linebuf, strlen(yy_linebuf));
|
||||
|
||||
ierror("\"%s\", line %d: %s at '%s'", conffilebuf, lineno + 1, msg, newlinebuf);
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "\"%s\", line %d: %s at '%s'",
|
||||
|
|
Loading…
Reference in a new issue