0

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);
4

0 回答 0