aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ncpfs/ioctl.c
diff options
context:
space:
mode:
authorAnton Altaparmakov <aia21@cantab.net>2006-01-19 11:39:33 -0500
committerAnton Altaparmakov <aia21@cantab.net>2006-01-19 11:39:33 -0500
commit944d79559d154c12becde0dab327016cf438f46c (patch)
tree50c101806f4d3b6585222dda060559eb4f3e005a /fs/ncpfs/ioctl.c
parentd087e4bdd24ebe3ae3d0b265b6573ec901af4b4b (diff)
parent0f36b018b2e314d45af86449f1a97facb1fbe300 (diff)
Merge branch 'master' of /usr/src/ntfs-2.6/
Diffstat (limited to 'fs/ncpfs/ioctl.c')
-rw-r--r--fs/ncpfs/ioctl.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/fs/ncpfs/ioctl.c b/fs/ncpfs/ioctl.c
index fd3efdca5ae3..eb3813ad136f 100644
--- a/fs/ncpfs/ioctl.c
+++ b/fs/ncpfs/ioctl.c
@@ -10,6 +10,7 @@
10#include <linux/config.h> 10#include <linux/config.h>
11 11
12#include <asm/uaccess.h> 12#include <asm/uaccess.h>
13#include <linux/capability.h>
13#include <linux/errno.h> 14#include <linux/errno.h>
14#include <linux/fs.h> 15#include <linux/fs.h>
15#include <linux/ioctl.h> 16#include <linux/ioctl.h>
@@ -517,10 +518,11 @@ outrel:
517 if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) 518 if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN)
518 return -ENOMEM; 519 return -ENOMEM;
519 if (user.object_name_len) { 520 if (user.object_name_len) {
520 newname = ncp_kmalloc(user.object_name_len, GFP_USER); 521 newname = kmalloc(user.object_name_len, GFP_USER);
521 if (!newname) return -ENOMEM; 522 if (!newname)
523 return -ENOMEM;
522 if (copy_from_user(newname, user.object_name, user.object_name_len)) { 524 if (copy_from_user(newname, user.object_name, user.object_name_len)) {
523 ncp_kfree_s(newname, user.object_name_len); 525 kfree(newname);
524 return -EFAULT; 526 return -EFAULT;
525 } 527 }
526 } else { 528 } else {
@@ -539,8 +541,8 @@ outrel:
539 server->priv.len = 0; 541 server->priv.len = 0;
540 server->priv.data = NULL; 542 server->priv.data = NULL;
541 /* leave critical section */ 543 /* leave critical section */
542 if (oldprivate) ncp_kfree_s(oldprivate, oldprivatelen); 544 kfree(oldprivate);
543 if (oldname) ncp_kfree_s(oldname, oldnamelen); 545 kfree(oldname);
544 return 0; 546 return 0;
545 } 547 }
546 case NCP_IOC_GETPRIVATEDATA: 548 case NCP_IOC_GETPRIVATEDATA:
@@ -580,10 +582,11 @@ outrel:
580 if (user.len > NCP_PRIVATE_DATA_MAX_LEN) 582 if (user.len > NCP_PRIVATE_DATA_MAX_LEN)
581 return -ENOMEM; 583 return -ENOMEM;
582 if (user.len) { 584 if (user.len) {
583 new = ncp_kmalloc(user.len, GFP_USER); 585 new = kmalloc(user.len, GFP_USER);
584 if (!new) return -ENOMEM; 586 if (!new)
587 return -ENOMEM;
585 if (copy_from_user(new, user.data, user.len)) { 588 if (copy_from_user(new, user.data, user.len)) {
586 ncp_kfree_s(new, user.len); 589 kfree(new);
587 return -EFAULT; 590 return -EFAULT;
588 } 591 }
589 } else { 592 } else {
@@ -595,7 +598,7 @@ outrel:
595 server->priv.len = user.len; 598 server->priv.len = user.len;
596 server->priv.data = new; 599 server->priv.data = new;
597 /* leave critical section */ 600 /* leave critical section */
598 if (old) ncp_kfree_s(old, oldlen); 601 kfree(old);
599 return 0; 602 return 0;
600 } 603 }
601 604