dlm: fix length calculation in compat code
authorDavid Teigland <teigland@redhat.com>
Wed, 4 Mar 2009 17:17:23 +0000 (11:17 -0600)
committerDavid Teigland <teigland@redhat.com>
Wed, 11 Mar 2009 17:23:59 +0000 (12:23 -0500)
commit1fecb1c4b62881e3689ba2dcf93072ae301b597c
treebd0a111ea40bfaa0697e7b0c341660cd970a23a3
parenta536e38125fe5da8ed49690f30c30a8f651cf1f5
dlm: fix length calculation in compat code

Using offsetof() to calculate name length does not work because
it does not produce consistent results with with structure packing.
This caused memcpy to corrupt memory by copying 4 extra bytes off
the end of the buffer on 64 bit kernels with 32 bit userspace
(the only case where this 32/64 compat code is used).

The fix is to calculate name length directly from the start instead
of trying to derive it later using count and offsetof.

Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/user.c