From f80b3a3d825110b5d8826f72db3fa47a6d71b66a Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Wed, 30 Nov 2011 06:58:36 +0000 Subject: =?UTF-8?q?2011-11-30=09Ralf=20Cors=C3=A9pius=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * librpc/src/rpc/clnt_udp.c (struct cu_data): Introduce unions _cu_inbuf, _cu_outbuf to avoid aliasing. --- cpukit/librpc/src/rpc/clnt_udp.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'cpukit/librpc') diff --git a/cpukit/librpc/src/rpc/clnt_udp.c b/cpukit/librpc/src/rpc/clnt_udp.c index aeace640a8..369da95f2d 100644 --- a/cpukit/librpc/src/rpc/clnt_udp.c +++ b/cpukit/librpc/src/rpc/clnt_udp.c @@ -88,9 +88,17 @@ struct cu_data { XDR cu_outxdrs; u_int cu_xdrpos; u_int cu_sendsz; /* send size */ - char *cu_outbuf; + union { + u_int32_t *i32; + char *c; + } _cu_outbuf; +#define cu_outbuf _cu_outbuf.c u_int cu_recvsz; /* recv size */ - char cu_inbuf[1]; + union { + u_int32_t *i32; + char c[1]; + } _cu_inbuf; +#define cu_inbuf _cu_inbuf.c }; /* @@ -352,7 +360,7 @@ send_again: if (inlen < sizeof(u_int32_t)) continue; /* see if reply transaction id matches sent id */ - if (*((u_int32_t *)(cu->cu_inbuf)) != *((u_int32_t *)(cu->cu_outbuf))) + if (*(cu->_cu_inbuf.i32) != *(cu->_cu_outbuf.i32)) continue; /* we now assume we have the proper reply */ break; -- cgit v1.2.3