summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Eremin <dmitry.eremin@intel.com>2016-03-02 22:01:57 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-03-02 23:23:49 (GMT)
commit95193044c9cc3c69755b0582707bf32ddc05d4f3 (patch)
tree706256f73c8820dae9968e5fbd79e441416faf1b
parent72159bb6a0471281d6bac3bef0168953952ab254 (diff)
downloadlinux-95193044c9cc3c69755b0582707bf32ddc05d4f3.tar.xz
staging: lustre: fix conctl.c issues found by Klocwork Insight tool
The function lst_test_add_ioctl is always copying lstio_tes_param from userland even if the user doesn't send this data to LNet selftest. Only consider lstio_tes_param data if lstio_tes_param_len is not zero. Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4629 Reviewed-on: http://review.whamcloud.com/9386 Reviewed-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: Isaac Huang <he.huang@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/lustre/lnet/selftest/conctl.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/staging/lustre/lnet/selftest/conctl.c b/drivers/staging/lustre/lnet/selftest/conctl.c
index 90b7771..714d14b 100644
--- a/drivers/staging/lustre/lnet/selftest/conctl.c
+++ b/drivers/staging/lustre/lnet/selftest/conctl.c
@@ -761,6 +761,11 @@ static int lst_test_add_ioctl(lstio_test_args_t *args)
LIBCFS_ALLOC(param, args->lstio_tes_param_len);
if (!param)
goto out;
+ if (copy_from_user(param, args->lstio_tes_param,
+ args->lstio_tes_param_len)) {
+ rc = -EFAULT;
+ goto out;
+ }
}
rc = -EFAULT;
@@ -769,9 +774,7 @@ static int lst_test_add_ioctl(lstio_test_args_t *args)
copy_from_user(src_name, args->lstio_tes_sgrp_name,
args->lstio_tes_sgrp_nmlen) ||
copy_from_user(dst_name, args->lstio_tes_dgrp_name,
- args->lstio_tes_dgrp_nmlen) ||
- copy_from_user(param, args->lstio_tes_param,
- args->lstio_tes_param_len))
+ args->lstio_tes_dgrp_nmlen))
goto out;
rc = lstcon_test_add(batch_name, args->lstio_tes_type,