Skip to content

Commit 5155293

Browse files
committed
Avoid unaligned load
1 parent 34098c3 commit 5155293

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Modules/_ctypes/cfield.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,10 @@ Py_ssize_t NUM_BITS(Py_ssize_t bitsize) {
401401
return NULL; \
402402
} \
403403
} \
404-
*(CTYPE*)ptr = SET(CTYPE, *(CTYPE*)ptr, val, size_arg); \
404+
CTYPE prev; \
405+
memcpy(&prev, ptr, (NBITS) / 8); \
406+
val = SET(CTYPE, prev, val, size_arg); \
407+
memcpy(ptr, &val, (NBITS) / 8); \
405408
_RET(value); \
406409
} \
407410
\

0 commit comments

Comments
 (0)