Ticket #26751

YMODEM 受信に失敗する

Open Date: 2011-11-16 21:16 Last Update: 2012-01-21 13:13

Reporter:
(del#1144)
Owner:
(del#24082)
Type:
Status:
Closed
Component:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Invalid
File:
2
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

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)
  • Owner Update from (None) to yutakapon
Comment

ブロック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)
Comment

後ろ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)
  • Milestone Update from (None) to Tera Term 4.73 (closed)
  • Resolution Update from None to Invalid
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2012-01-21 13:13
Comment

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

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

Attachment File List

Edit

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