待辦事項 #26751

YMODEM 受信に失敗する

啟用日期: 2011-11-16 21:16 最後更新: 2012-01-21 13:13

回報者:
(del#1144)
負責人:
(del#24082)
類型:
狀態:
關閉
元件:
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
Invalid
檔案:
2
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

細節

nサーバが Linux の場合には受信に成功するが、FreeBSD の場合は失敗する。

サーバ側はどちらも lrzsz-0.12.20 (パッチレベルは違うかもしれない)で、ファイルはどちらも同一のもの。

各サーバに対しての動作ログを添付しておく。

Ticket History (3/6 Histories)

2011-11-16 21:16 Updated by: (del#1144)
  • New Ticket "YMODEM 受信に失敗する" created
2012-01-04 21:08 Updated by: (del#24082)
  • 負責人 Update from (無) to yutakapon
評語

ブロック0のフォーマットに違いがあるようです。

Linuxのほうはオールゼロですが、FreeBSDでは最後の3バイトに何か値が入っています。

これにより、Tera Termは「ファイルの終わり」が検出できていません。

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 01 10 21 
         ^^^^^^^^これはなに?

2012-01-05 01:10 Updated by: (del#1144)
評語

後ろ2つはCRCで、後ろから3つ目と4つ目をパケット数として使う実装があるみたいで、最初のファイル名を渡しているブロック0でも 01 が出ていますね。それが「転送終了」のブロック0でも出力されるのは lrzsz 側のバグではないかと思います。

ただ、ソースは同じなのに Linux のほうでは問題の現象が出ていないんですが、その理由は不明です。lrzsz-0.12.20-19.src.rpm をほどいてパッチも見てみましたが、とくに違う様子はないんですが…

2012-01-21 13:13 Updated by: (del#1144)
  • 里程碑 Update from (無) to Tera Term 4.73 (closed)
  • 處理結果 Update from to Invalid
  • 狀態 Update from 開啟 to 關閉
  • Ticket Close date is changed to 2012-01-21 13:13
評語

lrzsz 側で構造体が明示的に初期化がされておらず、Linux では 0 で暗黙的に初期化しているかたまたま 0 になっているために問題が起こらないようです。

Tera Term 側の対応は不要で、FreeBSD のほうに send-pr しておきました。 http://www.freebsd.org/cgi/query-pr.cgi?pr=164347

Attachment File List

編輯

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