Ticket #40764

コマンドライン引数の文字化け

Date d'ouverture: 2020-09-23 13:52 Dernière mise à jour: 2023-04-26 23:10

Rapporteur:
(Anonyme)
Propriétaire:
Type:
État:
Atteints
Composant:
Priorité:
5 - moyen
Sévérité:
9 - le plus élevé
Résolution:
Fixed
Fichier:
Aucun
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Détails

Tera Term Menuのコマンドライン引数の文字数が、MAX_PATHで制限されているため、256文字を超えるコマンドライン引数部分が文字化けにより渡されない。 ホスト名、ユーザ名、パスワード等を保持する変数は、各々MAX_PATHサイズで変数をとっているが、最終的にszArgment変数にコピーしており、szArgmentも MAX_PATH文字しか取っていないため、バッファーオーバーフローを起こしていると思われる。ただし、別の処理でオーバーした分が上書きされていると思われる。 WindwosXP以降はコマンドラインバッファは8192文字まで対応しているので、szArgment変数は8192分を用意するべきであるし、サイズチェックをするべき。

Ticket History (3/6 Histories)

2020-09-23 13:52 Updated by: None
  • New Ticket "コマンドライン引数の文字化け" created
2023-01-10 08:19 Updated by: nmaya
  • Priorité Update from 9 - le plus élevé to 5 - moyen
2023-01-10 19:33 Updated by: nmaya
Commentaire

8192 の根拠になるのはここ?https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/shell-experience/command-line-string-limitation

修正必要箇所はまだ見ていないが、バッファを増やすだけなら容易?

2023-01-31 21:49 Updated by: nmaya
Commentaire

で対応しました。


WindwosXP以降はコマンドラインバッファは8192文字まで対応しているので、szArgment変数は8192分を用意するべきであるし、

資料によると 8191 文字が上限のようなので、char szArgment[8192] に変更しました。

サイズチェックをするべき。

wsprintf() や _snprintf() を使っているところがあったので _s 付きの関数に変更しました。こういうご指摘だったという理解でいいでしょうか?

2023-01-31 21:49 Updated by: nmaya
  • Propriétaire Update from (Aucun) to nmaya
  • Résolution Update from Aucun to Fixed
2023-04-26 23:10 Updated by: nmaya
  • État Update from Ouvert to Atteints

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion