为缓解错误分配缓冲区是否安全?

时间:2016-06-15 14:55:15

标签: c security posix alloca

regerror返回存储错误消息所需的字节数。由于我正在使用的应用程序没有在堆栈中“深入”(即没有深度嵌套的函数调用)我正在考虑使用alloca(应用程序已经用于其他目的)获取临时存储堆栈(而不是堆)上的错误消息。

是否可以安全地假设错误消息(长度)有限,这样我就不会遇到堆栈溢出?

这是否会打开一个安全漏洞(通过操纵使用过的消息目录)?

size_t const length = regerror(status, regex, NULL, 0);
char * const buffer = alloca(length);
size_t const check_length = regerror(status, regex, buffer, length);
assert(check_length == length);

0 个答案:

没有答案