From 00927b8897b8f24e154ab2d61a7c6745ae8bf874 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Fri, 16 Apr 2010 00:52:49 +0000 Subject: 2010-04-16 Marcus Brinkmann * assuan-uds.c (uds_reader, uds_sendfd): Don't break strict aliasing rules. --- src/ChangeLog | 5 +++++ src/assuan-uds.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 5f49b61..66d884d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2010-04-16 Marcus Brinkmann + + * assuan-uds.c (uds_reader, uds_sendfd): Don't break strict + aliasing rules. + 2010-04-14 Werner Koch * Makefile.am (install-exec-hook): Rename libgpgcedev-0.dll. diff --git a/src/assuan-uds.c b/src/assuan-uds.c index 2e0f821..96cf683 100644 --- a/src/assuan-uds.c +++ b/src/assuan-uds.c @@ -116,7 +116,9 @@ uds_reader (assuan_context_t ctx, void *buf, size_t buflen) "unexpected ancillary data received"); else { - int fd = *((int*)CMSG_DATA (cmptr)); + int fd; + + memcpy (&fd, CMSG_DATA (cmptr), sizeof (fd)); if (ctx->uds.pendingfdscount >= DIM (ctx->uds.pendingfds)) { @@ -208,7 +210,8 @@ uds_sendfd (assuan_context_t ctx, assuan_fd_t fd) cmptr->cmsg_len = CMSG_LEN(sizeof(int)); cmptr->cmsg_level = SOL_SOCKET; cmptr->cmsg_type = SCM_RIGHTS; - *((int*)CMSG_DATA (cmptr)) = fd; + + memcpy (CMSG_DATA (cmptr), &fd, sizeof (fd)); len = _assuan_sendmsg (ctx, ctx->outbound.fd, &msg, 0); if (len < 0) -- cgit v1.2.3