• C
    NFS: Fix nfs4_verifier memory alignment · cd93710e
    Chuck Lever 提交于
    Clean up due to code review.
    
    The nfs4_verifier's data field is not guaranteed to be u32-aligned.
    Casting an array of chars to a u32 * is considered generally
    hazardous.
    
    Fix this by using a __be32 array to generate a verifier's contents,
    and then byte-copy the contents into the verifier field.  The contents
    of a verifier, for all intents and purposes, are opaque bytes.  Only
    local code that generates a verifier need know the actual content and
    format.  Everyone else compares the full byte array for exact
    equality.
    
    Also, sizeof(nfs4_verifer) is the size of the in-core verifier data
    structure, but NFS4_VERIFIER_SIZE is the number of octets in an XDR'd
    verifier.  The two are not interchangeable, even if they happen to
    have the same value.
    Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
    cd93710e
nfs4proc.c 173.0 KB