2002-10-16 04:24:01

by Zwane Mwaikambo

[permalink] [raw]
Subject: [PATCH][2.5] CIFS copy_*_user

Index: linux-2.5.43/fs/cifs/cifssmb.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.43/fs/cifs/cifssmb.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 cifssmb.c
--- linux-2.5.43/fs/cifs/cifssmb.c 16 Oct 2002 03:46:04 -0000 1.1.1.1
+++ linux-2.5.43/fs/cifs/cifssmb.c 16 Oct 2002 04:12:41 -0000
@@ -505,7 +505,8 @@
pReadData =
(char *) (&pSMBr->hdr.Protocol) +
le16_to_cpu(pSMBr->DataOffset);
- copy_to_user(buf, pReadData, pSMBr->DataLength);
+ if (copy_to_user(buf, pReadData, pSMBr->DataLength))
+ rc = -EFAULT;
}
}

@@ -544,8 +545,10 @@
pSMB->DataLengthHigh = 0;
pSMB->DataOffset =
cpu_to_le16(offsetof(struct smb_com_write_req,Data) - 4);
- copy_from_user(pSMB->Data, buf, pSMB->DataLengthLow);
-
+ if (copy_from_user(pSMB->Data, buf, pSMB->DataLengthLow)) {
+ rc = -EFAULT;
+ goto exit_release;
+ }
pSMB->ByteCount += pSMB->DataLengthLow + 1 /* pad */ ;
pSMB->DataLengthLow = cpu_to_le16(pSMB->DataLengthLow);
pSMB->hdr.smb_buf_length += pSMB->ByteCount;
@@ -559,6 +562,7 @@
} else
*nbytes = le16_to_cpu(pSMBr->Count);

+exit_release:
if (pSMB)
buf_release(pSMB);


--
function.linuxpower.ca