[rtems-libbsd commit] freebsd/nfsv4: Fix misaligned 64bit user dirent write
Chris Johns
chrisj at rtems.org
Mon Jun 20 02:57:50 UTC 2022
Module: rtems-libbsd
Branch: 6-freebsd-12
Commit: c56a34f54767decf3e398651c30bea9ebbd9572a
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=c56a34f54767decf3e398651c30bea9ebbd9572a
Author: Chris Johns <chrisj at rtems.org>
Date: Mon Jun 20 12:44:41 2022 +1000
freebsd/nfsv4: Fix misaligned 64bit user dirent write
---
freebsd/sys/fs/nfsclient/nfs_clrpcops.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/freebsd/sys/fs/nfsclient/nfs_clrpcops.c b/freebsd/sys/fs/nfsclient/nfs_clrpcops.c
index e3101f76..53e4a525 100644
--- a/freebsd/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/freebsd/sys/fs/nfsclient/nfs_clrpcops.c
@@ -3205,10 +3205,23 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 *cookiep,
} else {
dp->d_fileno = nfsva.na_fileid;
}
+#ifndef __rtems__
*tl2++ = cookiep->nfsuquad[0] = cookie.lval[0] =
ncookie.lval[0];
+#else /* __rtems__ */
+ memcpy(tl2, &ncookie.lval[0], sizeof(*tl2));
+ tl2++;
+ cookiep->nfsuquad[0] = cookie.lval[0] =
+ ncookie.lval[0];
+#endif /* __rtems__ */
+#ifndef __rtems__
*tl2 = cookiep->nfsuquad[1] = cookie.lval[1] =
ncookie.lval[1];
+#else /* __rtems__ */
+ memcpy(tl2, &ncookie.lval[1], sizeof(*tl2));
+ cookiep->nfsuquad[1] = cookie.lval[1] =
+ ncookie.lval[1];
+#endif /* __rtems__ */
}
more_dirs = fxdr_unsigned(int, *tl);
}
More information about the vc
mailing list