[PATCH] in cifssmb.c add copy_from_user return value check and dominor formatting/whitespace cleanups.

From: Jesper Juhl
Date: Tue Dec 21 2004 - 18:23:43 EST



Hi,

Seeing this warning :

fs/cifs/cifssmb.c:902: warning: ignoring return value of `copy_from_user', declared with attribute warn_unused_result

lead to the following patch.

The patch adds a check of the copy_from_user return value and returns
-EFAULT if the call fails. In addition to that I did some
formatting/whitespace changes - the code uses primarily tabs for
indentation, but this little bit used spaces, so I changed that to tabs; I
also added a few curly braces {} for a few if statements, in the same
area, that seemed to be becomming quite hard to read without.

Patch has been compile tested, but I have no real way to test it properly
beyond that.
I hope the patch is acceptable and mergable :)

Btw, I'm only subscribed to LKML, so please keep me on CC.


Signed-off-by: Jesper Juhl <juhl-lkml@xxxxxx>

diff -up linux-2.6.10-rc3-bk13-orig/fs/cifs/cifssmb.c linux-2.6.10-rc3-bk13/fs/cifs/cifssmb.c
--- linux-2.6.10-rc3-bk13-orig/fs/cifs/cifssmb.c 2004-12-20 22:19:42.000000000 +0100
+++ linux-2.6.10-rc3-bk13/fs/cifs/cifssmb.c 2004-12-22 00:21:38.000000000 +0100
@@ -895,14 +895,19 @@ CIFSSMBWrite(const int xid, struct cifsT
bytes_sent = count;
pSMB->DataLengthHigh = 0;
pSMB->DataOffset =
- cpu_to_le16(offsetof(struct smb_com_write_req,Data) - 4);
- if(buf)
- memcpy(pSMB->Data,buf,bytes_sent);
- else if(ubuf)
- copy_from_user(pSMB->Data,ubuf,bytes_sent);
- else {
+ cpu_to_le16(offsetof(struct smb_com_write_req,Data) - 4);
+
+ if (buf) {
+ memcpy(pSMB->Data,buf,bytes_sent);
+ } else if (ubuf) {
+ if (copy_from_user(pSMB->Data,ubuf,bytes_sent)) {
+ if (pSMB)
+ cifs_buf_release(pSMB);
+ return -EFAULT;
+ }
+ } else {
/* No buffer */
- if(pSMB)
+ if (pSMB)
cifs_buf_release(pSMB);
return -EINVAL;
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/