summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGaurav <gaurav@gluster.com>2011-05-31 23:52:24 +0000
committerAnand Avati <avati@gluster.com>2011-06-01 00:29:58 -0700
commit654c4d856af0e939a52d850243194a9ff367197c (patch)
tree0017fd4cae7ad4ab6c4c390edede3bf8869de543
parentb8f8239ec39d444c2b861ad19e273925918b9026 (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
-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 13eb1c0eb7d..2fc295ef3e9 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);