From 5aa39a6397ed2193e3e197f60a3a690f5bed1973 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Tue, 30 Apr 2024 15:42:38 -0600 Subject: [PATCH] remove assumption of struct layout --- src/internal.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/internal.c b/src/internal.c index c3f30a656..02e34dbc2 100644 --- a/src/internal.c +++ b/src/internal.c @@ -11273,7 +11273,13 @@ static int GetRecordHeader(WOLFSSL* ssl, word32* inOutIdx, ssl->fuzzerCb(ssl, ssl->buffers.inputBuffer.buffer + *inOutIdx, RECORD_HEADER_SZ, FUZZ_HEAD, ssl->fuzzerCtx); #endif - XMEMCPY(rh, ssl->buffers.inputBuffer.buffer + *inOutIdx, RECORD_HEADER_SZ); + /* Set explicitly rather than make assumptions on struct layout */ + rh->type = ssl->buffers.inputBuffer.buffer[*inOutIdx]; + rh->pvMajor = ssl->buffers.inputBuffer.buffer[*inOutIdx + 1]; + rh->pvMinor = ssl->buffers.inputBuffer.buffer[*inOutIdx + 2]; + rh->length[0] = ssl->buffers.inputBuffer.buffer[*inOutIdx + 3]; + rh->length[1] = ssl->buffers.inputBuffer.buffer[*inOutIdx + 4]; + *inOutIdx += RECORD_HEADER_SZ; ato16(rh->length, size); }