任务单 #26751

YMODEM 受信に失敗する

开放日期: 2011-11-16 21:16 最后更新: 2012-01-21 13:13

报告人:
(del#1144)
属主:
(del#24082)
类型:
状态:
关闭
组件:
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Invalid
文件:
2
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

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

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

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

任务单历史 (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 (关闭)
  • 处理结果 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. » 登录名