From 8ad7891f28c0ffd991c51f2d64c32cf04c9ddbbc Mon Sep 17 00:00:00 2001 From: George McCollister Date: Thu, 4 Mar 2010 09:41:33 -0600 Subject: Fixed alignment problems in nss client/server I fixed a handful of alignment problems in sss_client and nss responder. Enumerating group and passwd with getgrent and getpwent now works correctly on ARM. Signed-off-by: George McCollister --- src/sss_client/passwd.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/sss_client/passwd.c') diff --git a/src/sss_client/passwd.c b/src/sss_client/passwd.c index 0d70b684..aa5c7602 100644 --- a/src/sss_client/passwd.c +++ b/src/sss_client/passwd.c @@ -74,13 +74,16 @@ static int sss_nss_getpw_readrep(struct sss_nss_pw_rep *pr, { size_t i, slen, dlen; char *sbuf; + uint32_t c; if (*len < 13) { /* not enough space for data, bad packet */ return EBADMSG; } - pr->result->pw_uid = ((uint32_t *)buf)[0]; - pr->result->pw_gid = ((uint32_t *)buf)[1]; + SAFEALIGN_COPY_UINT32(&c, buf, NULL); + pr->result->pw_uid = c; + SAFEALIGN_COPY_UINT32(&c, buf+sizeof(uint32_t), NULL); + pr->result->pw_gid = c; sbuf = (char *)&buf[8]; slen = *len - 8; -- cgit