[openssl/openssl] ab4940: Fix SM2 RISC-V64 crash from functions emitted into...
"'Mounir IDRASSI' via openssl-commits" <[email protected]> Mon, 20 Jul 2026 02:48:33 -0700
| Newsgroups | gmane.comp.encryption.openssl.cvs |
|---|---|
| Message-ID | <openssl/openssl/push/refs/heads/openssl-4.0/[email protected]> |
Branch: refs/heads/openssl-4.0
Home: https://github.com/openssl/openssl
Commit: ab494079fa271ff9d6e7da8012fa46855cdda1d4
https://github.com/openssl/openssl/commit/ab494079fa271ff9d6e7da8012fa46855cdda1d4
Author: Mounir IDRASSI <[email protected]>
Date: 2026-07-20 (Mon, 20 Jul 2026)
Changed paths:
M crypto/ec/asm/ecp_sm2p256-riscv64.pl
Log Message:
-----------
Fix SM2 RISC-V64 crash from functions emitted into .rodata
The ecp_sm2p256-riscv64.pl generator switches to .section .rodata
to emit constant data (.Lpoly, .Lord, .Lpoly_div_2, .Lord_div_2), but
never switches back before emitting function code.
As a result, the function symbols defined by this file are assembled
into .rodata instead of executable .text. On systems enforcing NX for
.rodata, calling the RISC-V64 SM2 assembly faults immediately.
Fix this by adding .previous after the constant block, restoring the
initial .text section before function emission.
Verified with readelf: before the fix, .text is empty and the function
symbols are in .rodata; after the fix, constants remain in .rodata and
the function symbols are in executable .text.
Introduced in commit 05301b100f (PR #25918).
Reviewed-by: Paul Yang <[email protected]>
Reviewed-by: Saša Nedvědický <[email protected]>
MergeDate: Mon Jul 20 09:47:49 2026
(Merged from https://github.com/openssl/openssl/pull/31874)
To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications
--
You received this message because you are subscribed to the Google Groups "openssl-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-commits/openssl/openssl/push/refs/heads/openssl-4.0/880e73-ab4940%40github.com.