À regarderun correctif ou une fonctionnalité utile
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.
1 sur 1 entrées · 1 commits upstream
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.
Mise à jour recommandée
Recompilez et déployez les binaires Win64 si votre application s'appuie sur des fonctions cryptographiques utilisant SBlockMix.