mORMot2 Daily每日上游提交速读

密码学块混合中的 Win64 ABI 修复

今天带来了一个针对使用 mORMot2 密码学的 Windows x64 应用程序的重要修复。一个底层汇编例程没有保留特定的 XMM 寄存器,从而违反了调用约定,这可能导致调用代码出现不可预测的行为。

要点

  • SBlockMix assembly now correctly preserves XMM8-XMM11 registers on Win64.

升级建议

运行使用 mORMot 密码学(例如 scrypt 或特定的块算法)的 Win64 后端团队应该拉取此更新,以防止潜在的寄存器损坏。

版本号2.4.16628 → 2.4.16629
提交1
行数+12 -2
阅读1 分钟

1 条中的 1 条 · 上游 1 次提交

# 条目 类别 单元
1 中 汇编例程在 Win64 上破坏了 XMM 寄存器 修改了 mormot.crypt.other 中针对 ABIWINX64 目标的 SBlockMix 内联汇编。它现在从堆栈指针中减去 72 个字节,并在执行前使用 movaps 保存寄存器 xmm8、xmm9、xmm10 和 xmm11,随后进行恢复。 修复 mormot.crypt.other 2c1daf90+12-2

crypt: fixed SBlockMix Win64 asm

影响

以前,在 Win64 上调用 SBlockMix 会覆盖非易失性 XMM 寄存器而不进行恢复,这违反了 Windows x64 调用约定。这可能导致调用者状态中出现不可预测的错误或访问冲突。

Arnaud Bouchez · 15:12 UTC · 在 GitHub 上查看该提交 →

上游活动 每日提交数 · 最近 60 天
提交977
活跃天数44/60
最忙一天2026-09-30
峰值60
2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 26 commits2026-08-28: 11 commits2026-08-29: 10 commits2026-08-30: 1 commit2026-08-31: 23 commits2026-09-01: 0 commits2026-09-02: 20 commits2026-09-03: 29 commits2026-09-04: 35 commits2026-09-05: 13 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 23 commits2026-09-09: 10 commits2026-09-10: 17 commits2026-09-11: 23 commits2026-09-12: 14 commits2026-09-13: 9 commits2026-09-14: 7 commits2026-09-15: 4 commits2026-09-16: 24 commits2026-09-17: 26 commits2026-09-18: 21 commits2026-09-19: 59 commits2026-09-20: 13 commits2026-09-21: 5 commits2026-09-22: 34 commits2026-09-23: 17 commits2026-09-24: 57 commits2026-09-25: 22 commits2026-09-26: 26 commits2026-09-27: 0 commits2026-09-28: 2 commits2026-09-29: 19 commits2026-09-30: 60 commits2026-10-01: 26 commits2026-10-02: 30 commits2026-10-03: 32 commits2026-10-04: 15 commits2026-10-05: 1 commit2026-10-06: 26 commits2026-10-07: 37 commits2026-10-08: 27 commits2026-10-09: 35 commits2026-10-10: 33 commits2026-10-11: 9 commits2026-10-12: 11 commits2026-10-13: 35 commits
2026-08-152026-10-13