From 87eec33a964f8d3cbe81c61dcbed0b28a0bcec7f Mon Sep 17 00:00:00 2001 From: Steve French Date: Tue, 14 Feb 2006 22:30:52 -0600 Subject: [PATCH] --- yaml --- r: 20333 b: refs/heads/master c: 93544cc6486bea12e127ed58ca33477bb6ceafe6 h: refs/heads/master i: 20331: 28c47aeeb4c459b0c402474a058d3438b6a297c0 v: v3 --- [refs] | 2 +- trunk/fs/cifs/file.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 24c96877bd4d..cc46d6619bcb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 10ee39fe3ff618d274e1cd0f6abbc2917b736bfd +refs/heads/master: 93544cc6486bea12e127ed58ca33477bb6ceafe6 diff --git a/trunk/fs/cifs/file.c b/trunk/fs/cifs/file.c index d17c97d07c80..675bd2568297 100644 --- a/trunk/fs/cifs/file.c +++ b/trunk/fs/cifs/file.c @@ -1442,13 +1442,15 @@ ssize_t cifs_user_read(struct file *file, char __user *read_data, &bytes_read, &smb_read_data, &buf_type); pSMBr = (struct smb_com_read_rsp *)smb_read_data; - if (copy_to_user(current_offset, - smb_read_data + 4 /* RFC1001 hdr */ - + le16_to_cpu(pSMBr->DataOffset), - bytes_read)) { - rc = -EFAULT; - } if (smb_read_data) { + if (copy_to_user(current_offset, + smb_read_data + + 4 /* RFC1001 length field */ + + le16_to_cpu(pSMBr->DataOffset), + bytes_read)) { + rc = -EFAULT; + } + if(buf_type == CIFS_SMALL_BUFFER) cifs_small_buf_release(smb_read_data); else if(buf_type == CIFS_LARGE_BUFFER)