From 272f28263b1eec62691d61e72818912396f7d5e5 Mon Sep 17 00:00:00 2001 From: marcel Date: Sat, 14 Nov 2009 18:14:07 +0000 Subject: Fix an obvious panic by not casting from a pointer that is 4-bytes alignment to a type that needs 8-byte alignment, and thus causing misaligned memory references. MFC after: 1 week --- sys/nfsserver/nfs_fha.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sys/nfsserver') diff --git a/sys/nfsserver/nfs_fha.c b/sys/nfsserver/nfs_fha.c index 901a0ce..cad13dd 100644 --- a/sys/nfsserver/nfs_fha.c +++ b/sys/nfsserver/nfs_fha.c @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -206,7 +207,11 @@ fha_extract_info(struct svc_req *req, struct fha_info *i) if (error) goto out; - i->fh = *(const u_int64_t *)(fh.fh_generic.fh_fid.fid_data); +#if _BYTE_ORDER == _LITTLE_ENDIAN + i->fh = le64dec(fh.fh_generic.fh_fid.fid_data); +#else + i->fh = be64dec(fh.fh_generic.fh_fid.fid_data); +#endif /* Content ourselves with zero offset for all but reads. */ if (procnum != NFSPROC_READ) -- cgit v1.1