diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-17 21:12:05 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-17 21:12:05 +0200 |
commit | a3ae7330ecc0b8796945536771e20d586a51987d (patch) | |
tree | 139575445568072a5a0a3fe78d8aae298840a94d /ncr.c | |
parent | cdf6e470cdcfe74ff1522c43e15ffe1891521ad7 (diff) | |
download | kernel-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.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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(); |