Skip to content

Commit 997b18e

Browse files
billziss-ghromaindoumenc
authored andcommitted
runtime: fix invalid pointer in windows/arm64 badsignal2
Initializes the R3 register with an available address in the stack. The addressed location is used to receive the number of bytes written by WriteFile. Fixes golang#56080 Change-Id: I0368eb7a31d2d6a098fa9c26e074eb1114a92704 GitHub-Last-Rev: 23dbdb5 GitHub-Pull-Request: golang#56153 Reviewed-on: https://go-review.googlesource.com/c/go/+/442216 Reviewed-by: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Cherry Mui <[email protected]> Reviewed-by: Bryan Mills <[email protected]>
1 parent 62260a0 commit 997b18e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/runtime/sys_windows_arm64.s

+2-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ TEXT runtime·badsignal2(SB),NOSPLIT,$16-0
113113
MOVD $runtime·badsignalmsg(SB), R1 // lpBuffer
114114
MOVD $runtime·badsignallen(SB), R2 // lpNumberOfBytesToWrite
115115
MOVD (R2), R2
116-
MOVD R13, R3 // lpNumberOfBytesWritten
116+
// point R3 to stack local that will receive number of bytes written
117+
ADD $16, RSP, R3 // lpNumberOfBytesWritten
117118
MOVD $0, R4 // lpOverlapped
118119
MOVD runtime·_WriteFile(SB), R12
119120
SUB $16, RSP // skip over saved frame pointer below RSP

0 commit comments

Comments
 (0)