那么长的输入和yacc / lex怎么样?

时间:2015-09-17 13:57:30

标签: yacc

我考虑如何解决yacc和lex输入时间过长的问题。例如,我无法控制输入长度,我担心缓冲流攻击。

您怎么看?

1 个答案:

答案 0 :(得分:1)

没有理由关注(f)lex或yacc / bison生成的代码。它们将重新分配缓冲区和堆栈,或报告内存不足的情况。

通常,lex和yacc的传统配置不太愿意使用额外的内存,因此病态输入可能导致解析失败并出现内存错误,但这不是安全问题。

当然,这并不能减轻您确保所有代码都没有缓冲区溢出的责任。避免固定长度的缓冲区;总是检查限制;并且从不假设malloc不会返回0.