私がデバッグしているプログラムは、この時点で SIGINT を受け取っています。
#0 0x00007ffff590784e in toupper () from /lib/x86_64-linux-gnu/libc.so.6
問題のコードは次のとおりです。
std::string search = name;
std::transform(search.begin(), search.end(), search.begin(), ::toupper);
今のところ内容はわかりませんが、特殊な記号は許可されています。
std::wstring
実際にはUTF-8であり、大文字と小文字の変換を実行する前に変換する必要があるため、ここで何か間違ったことをしていることはすでにわかっています。ただし、間違った方法で行っていたにもかかわらず、なぜクラッシュするのかわかりません。
toupper
SIGINT でクラッシュする理由は何ですか? また、一部のユーザー入力がサーバー アプリケーションに影響を与えることを回避するにはどうすればよいでしょうか?