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
This commit is contained in:
parent
87122077a7
commit
9f230678c6
@ -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, 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)
|
||||
|
Loading…
Reference in New Issue
Block a user