Ticket #40764

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

오픈 날짜: 2020-09-23 13:52 마지막 업데이트: 2023-04-26 23:10

Reporter:
(Anonymous)
소유자:
Type:
Status:
Closed
Component:
Priority:
5 - Medium
Severity:
9 - Highest
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

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
  • Priority Update from 9 - Highest to 5 - Medium
2023-01-10 19:33 Updated by: nmaya
댓글 올리기

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

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

2023-01-31 21:49 Updated by: nmaya
댓글 올리기

で対応しました。


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

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

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

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

2023-01-31 21:49 Updated by: nmaya
  • 소유자 Update from (None) to nmaya
  • Resolution Update from None to Fixed
2023-04-26 23:10 Updated by: nmaya
  • Status Update from Open to Closed

Attachment File List

No attachments

Edit

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