static am_nfs_fh slink;
static am_nfs_fh un_fhandle;
+static void
+xgetuid(uid_t *uid, const void *p)
+{
+ u_int xuid;
+ (void)memcpy(&xuid, p, sizeof(xuid));
+ *uid = xuid;
+}
+
+static void
+xputuid(void *p, uid_t uid)
+{
+ u_int xuid = uid;
+ (void)memcpy(p, &xuid, sizeof(xuid));
+}
+
/*
* GLOBALS:
*/
if (gid != hlfs_gid) {
res.ns_status = NFSERR_STALE;
} else {
- (void)memcpy(&uid, argp->fh_data, sizeof(uid));
+ xgetuid(&uid, argp->fh_data);
if (plt_search(uid) != (uid2home_t *) NULL) {
res.ns_status = NFS_OK;
un_fattr.na_fileid = uid;
un_fattr.na_fileid = untab[idx].uid;
res.dr_u.dr_drok_u.drok_attributes = un_fattr;
memset(&un_fhandle, 0, sizeof(un_fhandle));
- memcpy(un_fhandle.fh_data, &untab[idx].uid, sizeof(untab[idx].uid));
+ xputuid(un_fhandle.fh_data, untab[idx].uid);
xstrlcpy((char *) &un_fhandle.fh_data[sizeof(int)],
untab[idx].username,
sizeof(am_nfs_fh) - sizeof(int));
}
if (groupid == hlfs_gid) {
- memcpy(&userid, argp->fh_data, sizeof(userid));
+ xgetuid(&userid, argp->fh_data);
username = (char *) &argp->fh_data[sizeof(int)];
if (!(res.rlr_u.rlr_data_u = mailbox(userid, username)))
return (nfsreadlinkres *) NULL;