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