mORMot2 DailyLecture quotidienne des commits upstream

Correction de l'ABI Win64 dans le mélange de blocs cryptographiques

La journée apporte un correctif unique mais important pour les applications Windows x64 utilisant la cryptographie mORMot2. Une routine en assembleur de bas niveau violait la convention d'appel en ne préservant pas certains registres XMM, ce qui pouvait provoquer un comportement imprévisible dans le code appelant.

En bref

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

Conseil de mise à jour

Les équipes exécutant des backends Win64 qui utilisent la cryptographie de mORMot (comme scrypt ou des algorithmes de blocs spécifiques) devraient intégrer cette mise à jour pour éviter une potentielle corruption des registres.

Build2.4.16628 → 2.4.16629
Commits1
Lignes+12 -2
Lecture1 min

1 sur 1 entrées · 1 commits upstream

# Entrée Catégorie Unités
1 Moyenne Une routine en assembleur corrompait les registres XMM sous Win64 L'assembleur en ligne pour SBlockMix dans mormot.crypt.other a été modifié pour la cible ABIWINX64. Il soustrait désormais 72 octets du pointeur de pile et utilise movaps pour sauvegarder les registres xmm8, xmm9, xmm10 et xmm11 avant l'exécution, puis les restaure par la suite. Correctifs mormot.crypt.other 2c1daf90+12-2

crypt: fixed SBlockMix Win64 asm

Impact

Auparavant, l'invocation de SBlockMix sous Win64 écrasait les registres XMM non volatils sans les restaurer, violant la convention d'appel de Windows x64. Cela pouvait entraîner des bugs imprévisibles ou des violations d'accès dans l'état de l'appelant.

Arnaud Bouchez · 15:12 UTC · voir le commit sur GitHub →

Activité upstream commits par jour · 60 derniers jours
Commits977
Jours actifs44/60
Plus chargé2026-09-30
Pic60
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