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