svn commit: r199274 - head/sys/nfsserver

Marcel Moolenaar marcel at FreeBSD.org
Sat Nov 14 18:14:07 UTC 2009


Author: marcel
Date: Sat Nov 14 18:14:07 2009
New Revision: 199274
URL: http://svn.freebsd.org/changeset/base/199274

Log:
  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

Modified:
  head/sys/nfsserver/nfs_fha.c

Modified: head/sys/nfsserver/nfs_fha.c
==============================================================================
--- head/sys/nfsserver/nfs_fha.c	Sat Nov 14 16:20:07 2009	(r199273)
+++ head/sys/nfsserver/nfs_fha.c	Sat Nov 14 18:14:07 2009	(r199274)
@@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/systm.h>
 #include <sys/sysproto.h>
 #include <sys/kernel.h>
+#include <sys/endian.h>
 #include <sys/sysctl.h>
 #include <sys/vnode.h>
 #include <sys/malloc.h>
@@ -206,7 +207,11 @@ fha_extract_info(struct svc_req *req, st
 	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)


More information about the svn-src-head mailing list