aboutsummaryrefslogtreecommitdiff
path: root/src/lib9
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9')
-rw-r--r--src/lib9/_p9dialparse.c2
-rw-r--r--src/lib9/sendfd.c2
-rw-r--r--src/lib9/truerand.c4
3 files changed, 5 insertions, 3 deletions
diff --git a/src/lib9/_p9dialparse.c b/src/lib9/_p9dialparse.c
index b7f5385a..0c84ecdb 100644
--- a/src/lib9/_p9dialparse.c
+++ b/src/lib9/_p9dialparse.c
@@ -71,7 +71,7 @@ parseip(char *host, u32int *pip)
return -1;
break;
}
- *pip = *(u32int*)addr;
+ memmove(pip, addr, 4);
return 0;
}
diff --git a/src/lib9/sendfd.c b/src/lib9/sendfd.c
index 10966828..b5e332ca 100644
--- a/src/lib9/sendfd.c
+++ b/src/lib9/sendfd.c
@@ -46,7 +46,7 @@ sendfd(int s, int fd)
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
- *(int*)CMSG_DATA(cmsg) = fd;
+ memmove(CMSG_DATA(cmsg), &fd, sizeof(int));
if((n=sendmsg(s, &msg, 0)) != iov.iov_len)
return -1;
diff --git a/src/lib9/truerand.c b/src/lib9/truerand.c
index 03f3dce1..45f739e1 100644
--- a/src/lib9/truerand.c
+++ b/src/lib9/truerand.c
@@ -6,6 +6,7 @@ truerand(void)
{
int i, n;
uchar buf[sizeof(ulong)];
+ ulong x;
static int randfd = -1;
static char *randfile;
@@ -21,5 +22,6 @@ truerand(void)
for(i=0; i<sizeof(buf); i += n)
if((n = readn(randfd, buf+i, sizeof(buf)-i)) < 0)
sysfatal("can't read %s: %r", randfile);
- return *((ulong*)buf);
+ memmove(&x, buf, sizeof x);
+ return x;
}