summaryrefslogtreecommitdiffstats
path: root/ncr.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-17 21:12:05 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-17 21:12:05 +0200
commita3ae7330ecc0b8796945536771e20d586a51987d (patch)
tree139575445568072a5a0a3fe78d8aae298840a94d /ncr.c
parentcdf6e470cdcfe74ff1522c43e15ffe1891521ad7 (diff)
downloadkernel-crypto-a3ae7330ecc0b8796945536771e20d586a51987d.tar.gz
kernel-crypto-a3ae7330ecc0b8796945536771e20d586a51987d.tar.xz
kernel-crypto-a3ae7330ecc0b8796945536771e20d586a51987d.zip
Added checking in copy_from_user and copy_to_user.
Diffstat (limited to 'ncr.c')
-rw-r--r--ncr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ncr.c b/ncr.c
index 352e0edf0a0..abdad6d0a7a 100644
--- a/ncr.c
+++ b/ncr.c
@@ -78,13 +78,18 @@ void ncr_master_key_reset(void)
static int ncr_master_key_set(void* __user arg)
{
struct ncr_master_key_st st;
+int ret;
if (current_euid() != 0 && !capable(CAP_SYS_ADMIN)) {
err();
return -EPERM;
}
- copy_from_user(&st, arg, sizeof(st));
+ ret = copy_from_user(&st, arg, sizeof(st));
+ if (unlikely(ret)) {
+ err();
+ return ret;
+ }
if (st.key_size > sizeof(master_key.key.secret.data)) {
err();