summaryrefslogtreecommitdiffstats
path: root/xlators/nfs/server/src/nfs3.c
diff options
context:
space:
mode:
authorGaurav <gaurav@gluster.com>2011-05-31 23:40:27 +0000
committerAnand Avati <avati@gluster.com>2011-06-01 00:29:46 -0700
commit197d850ff62ddcb266e3a9fab30ce753bf123540 (patch)
treee4d86f6e96fc5b9e4f52ed7f193e04fb4897d34e /xlators/nfs/server/src/nfs3.c
parent37b562b1605f900927494ec501dff4190eb26097 (diff)
NFS : Handle buffer overflow in nfs3_create_exclusive.
Signed-off-by: Gaurav <gaurav@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2972 (Buffer overflow in nfs3_create_exclusive.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2972
Diffstat (limited to 'xlators/nfs/server/src/nfs3.c')
-rw-r--r--xlators/nfs/server/src/nfs3.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
index 13eb1c0e..2fc295ef 100644
--- a/xlators/nfs/server/src/nfs3.c
+++ b/xlators/nfs/server/src/nfs3.c
@@ -2437,8 +2437,10 @@ nfs3_create_exclusive (nfs3_call_state_t *cs)
/* Storing verifier as a mtime and atime attribute, to store it
* in stable storage */
- cs->stbuf.ia_atime = (cs->cookieverf & 0xFFFFFFFF00000000);
- cs->stbuf.ia_mtime = (cs->cookieverf & 0x00000000FFFFFFFF);
+ memcpy (&cs->stbuf.ia_atime, &cs->cookieverf, sizeof (cs->stbuf.ia_atime));
+ memcpy (&cs->stbuf.ia_mtime,
+ ((char *) &cs->cookieverf) + sizeof (cs->stbuf.ia_atime),
+ sizeof (cs->stbuf.ia_mtime));
cs->setattr_valid |= GF_SET_ATTR_ATIME;
cs->setattr_valid |= GF_SET_ATTR_MTIME;
nfs_request_user_init (&nfu, cs->req);