mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-16 20:18:13 +08:00
freebsd/nfsv4: Fix misaligned 64bit user dirent write
This commit is contained in:
@@ -3205,10 +3205,23 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 *cookiep,
|
|||||||
} else {
|
} else {
|
||||||
dp->d_fileno = nfsva.na_fileid;
|
dp->d_fileno = nfsva.na_fileid;
|
||||||
}
|
}
|
||||||
|
#ifndef __rtems__
|
||||||
*tl2++ = cookiep->nfsuquad[0] = cookie.lval[0] =
|
*tl2++ = cookiep->nfsuquad[0] = cookie.lval[0] =
|
||||||
ncookie.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] =
|
*tl2 = cookiep->nfsuquad[1] = cookie.lval[1] =
|
||||||
ncookie.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_dirs = fxdr_unsigned(int, *tl);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user