Ticket #36763

httpプロキシでユーザ認証が必要な場合、異常終了することがある

Eröffnet am: 2016-10-31 20:26 Letztes Update: 2016-12-06 21:46

Auswertung:
(Anonym)
Verantwortlicher:
(del#1144)
Typ:
Status:
Geschlossen
Komponente:
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

httpプロキシ経由で接続し、プロキシがユーザ認証を必要とする場合に、認証情報入力用の画面がでますが、その後しばらくして異常終了します(TeraTerm4.92)。

通信時のログを見ると、 TTProxy/ProxyWSockHook.h の1392行で出力している CONNECT のみ出力されており、後続の行は出力されていません。

send: "CONNECT host:port HTTP/1.0\r\n"

該当ソースの1407行目でパスワードを追加している際のエリアの長さがおかしいのではないでしょうか?

  1. strcpy_s(auth + userlen + 1, passlen, proxy.pass);

正しくは passlen + 1 であるべきだと思われます。

  1. // 修正後イメージ
  2. strcpy_s(auth + userlen + 1, passlen + 1, proxy.pass);

また、その後のbase64エンコードのロジックですが1418行のループを抜けた時点で bits が0でない場合にエンコード結果がおかしくなると思われます。

例えば、ユーザ名: user 、パスワード passwd であれば、base64エンコード結果は dXNlcjpwYXNzd2Q= であるべきだと思うのですが、現在は dXNlcjpwYXNzd2== になってしまうと思います。

以下のようにすべきかと思われます。

  1. /* make base64 string */
  2. while (*src != '\0') {
  3. data = (data << 8) | *src++;
  4. bits += 8;
  5. while (bits >= 6){
  6. bits -= 6;
  7. *dst++ = base64_table[0x3F & (data >> bits)];
  8. encodedlen--;
  9. }
  10. } // ←ここが1418行目
  11. // ここから追加
  12. if (bits > 0) {
  13. *dst++ = base64_table[0x3F & (data << (6 - bits))];
  14. encodedlen--;
  15. }
  16. // ここまで追加
  17. while (encodedlen-- > 0) {
  18. *dst++ = '=';
  19. }
  20. *dst = '\0';

お手数ですが、ご確認願います。

Ticket-Verlauf (3/5 Historien)

2016-10-31 20:26 Aktualisiert von: None
  • New Ticket "httpプロキシでユーザ認証が必要な場合、異常終了することがある" created
2016-11-03 01:04 Aktualisiert von: (del#1144)
Kommentar

デバッグありがとうございます。r6525 r6526 にて修正をコミットしました。

2016-11-05 02:15 Aktualisiert von: (del#24082)
  • Verantwortlicher Update from (Keine) to maya
2016-12-01 09:01 Aktualisiert von: None
2016-12-06 21:46 Aktualisiert von: (del#1144)
  • Status Update from Offen to Geschlossen
  • Meilenstein Update from Tera Term 4.93 (closed) to (Keine)
  • Ticket Close date is changed to 2016-12-06 21:46

Dateianhangliste

Keine Anhänge

Bearbeiten

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