Patchwork [BRANCH:release-3.1,BUG:2972] NFS : Handle buffer overflow in nfs3_create_exclusive.

login
register
Submitter Gaurav
Date 2011-06-01 05:35:31
Message ID <1306906531-30101-1-git-send-email-gaurav@gluster.com>
Download mbox | patch
Permalink /patch/7346/
State Accepted
Headers show

Comments

Gaurav - 2011-06-01 05:35:31
From: Gaurav <gaurav@gluster.com>


Signed-off-by: Gaurav <gaurav@gluster.com>
---
 xlators/nfs/server/src/nfs3.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

Patch

diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
index e43b666..a40e477 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);