diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c index 93f1c48..32418aa 100644 --- a/Modules/_multiprocessing/multiprocessing.c +++ b/Modules/_multiprocessing/multiprocessing.c @@ -122,7 +122,7 @@ multiprocessing_sendfd(PyObject *self, PyObject *args) cmsg->cmsg_type = SCM_RIGHTS; cmsg->cmsg_len = CMSG_LEN(sizeof(int)); msg.msg_controllen = cmsg->cmsg_len; - *CMSG_DATA(cmsg) = fd; + memcpy(CMSG_DATA(cmsg), &fd, sizeof(int)); Py_BEGIN_ALLOW_THREADS res = sendmsg(conn, &msg, 0); @@ -165,7 +165,7 @@ multiprocessing_recvfd(PyObject *self, PyObject *args) if (res < 0) return PyErr_SetFromErrno(PyExc_OSError); - fd = *CMSG_DATA(cmsg); + memcpy(&fd, CMSG_DATA(cmsg), sizeof(int)); return Py_BuildValue("i", fd); }