summaryrefslogtreecommitdiffstats
path: root/cryptodev_main.c
diff options
context:
space:
mode:
authorPhil Sutter <phil.sutter@viprinet.com>2010-06-17 15:00:30 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-17 20:33:52 +0200
commit9fd408230f1fc91f8d877b5f55b1c00e8e89f665 (patch)
treef64bf13cf3ab419cfbc3da5ce4fdbedb8e990181 /cryptodev_main.c
parent26e1a7a351626f770514f001457bb307e08a177c (diff)
downloadkernel-crypto-9fd408230f1fc91f8d877b5f55b1c00e8e89f665.tar.gz
kernel-crypto-9fd408230f1fc91f8d877b5f55b1c00e8e89f665.tar.xz
kernel-crypto-9fd408230f1fc91f8d877b5f55b1c00e8e89f665.zip
eliminate warnings about unused result of copy_*_user
Diffstat (limited to 'cryptodev_main.c')
-rw-r--r--cryptodev_main.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/cryptodev_main.c b/cryptodev_main.c
index 9fac1e6c068..35feefdd7ab 100644
--- a/cryptodev_main.c
+++ b/cryptodev_main.c
@@ -405,7 +405,8 @@ crypto_run(struct fcrypt *fcr, struct crypt_op *cop)
while(nbytes > 0) {
size_t current_len = nbytes > bufsize ? bufsize : nbytes;
- copy_from_user(data, src, current_len);
+ if (unlikely(copy_from_user(data, src, current_len)))
+ goto out;
sg_init_one(&sg, data, current_len);
@@ -427,7 +428,8 @@ crypto_run(struct fcrypt *fcr, struct crypt_op *cop)
dprintk(0, KERN_ERR, "CryptoAPI failure: %d\n",ret);
goto out;
}
- copy_to_user(dst, data, current_len);
+ if (unlikely(copy_to_user(dst, data, current_len)))
+ goto out;
dst += current_len;
}
} else {
@@ -438,7 +440,8 @@ crypto_run(struct fcrypt *fcr, struct crypt_op *cop)
dprintk(0, KERN_ERR, "CryptoAPI failure: %d\n",ret);
goto out;
}
- copy_to_user(dst, data, current_len);
+ if (unlikely(copy_to_user(dst, data, current_len)))
+ goto out;
dst += current_len;
}
@@ -463,7 +466,8 @@ crypto_run(struct fcrypt *fcr, struct crypt_op *cop)
goto out;
}
- copy_to_user(cop->mac, hash_output, ses_ptr->hdata.digestsize);
+ if (unlikely(copy_to_user(cop->mac, hash_output, ses_ptr->hdata.digestsize)))
+ goto out;
}
#if defined(CRYPTODEV_STATS)
@@ -557,12 +561,11 @@ cryptodev_ioctl(struct inode *inode, struct file *filp,
return 0;
case CIOCGSESSION:
- copy_from_user(&sop, (void*)arg, sizeof(sop));
- ret = crypto_create_session(fcr, &sop);
+ ret = copy_from_user(&sop, (void*)arg, sizeof(sop));
+ ret |= crypto_create_session(fcr, &sop);
if (unlikely(ret))
return ret;
- copy_to_user((void*)arg, &sop, sizeof(sop));
- return 0;
+ return copy_to_user((void*)arg, &sop, sizeof(sop));
case CIOCFSESSION:
get_user(ses, (uint32_t*)arg);
@@ -570,12 +573,11 @@ cryptodev_ioctl(struct inode *inode, struct file *filp,
return ret;
case CIOCCRYPT:
- copy_from_user(&cop, (void*)arg, sizeof(cop));
- ret = crypto_run(fcr, &cop);
+ ret = copy_from_user(&cop, (void*)arg, sizeof(cop));
+ ret |= crypto_run(fcr, &cop);
if (unlikely(ret))
return ret;
- copy_to_user((void*)arg, &cop, sizeof(cop));
- return 0;
+ return copy_to_user((void*)arg, &cop, sizeof(cop));
default:
return -EINVAL;
@@ -645,32 +647,30 @@ cryptodev_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return cryptodev_ioctl(NULL, file, cmd, arg);
case COMPAT_CIOCGSESSION:
- copy_from_user(&compat_sop, (void *)arg,
- sizeof(compat_sop));
+ ret = copy_from_user(&compat_sop,
+ (void *)arg, sizeof(compat_sop));
compat_to_session_op(&compat_sop, &sop);
- ret = crypto_create_session(fcr, &sop);
+ ret |= crypto_create_session(fcr, &sop);
if (unlikely(ret))
return ret;
session_op_to_compat(&sop, &compat_sop);
- copy_to_user((void*)arg, &compat_sop,
- sizeof(compat_sop));
- return 0;
+ return copy_to_user((void*)arg,
+ &compat_sop, sizeof(compat_sop));
case COMPAT_CIOCCRYPT:
- copy_from_user(&compat_cop, (void*)arg,
- sizeof(compat_cop));
+ ret = copy_from_user(&compat_cop,
+ (void*)arg, sizeof(compat_cop));
compat_to_crypt_op(&compat_cop, &cop);
- ret = crypto_run(fcr, &cop);
+ ret |= crypto_run(fcr, &cop);
if (unlikely(ret))
return ret;
crypt_op_to_compat(&cop, &compat_cop);
- copy_to_user((void*)arg, &compat_cop,
- sizeof(compat_cop));
- return 0;
+ return copy_to_user((void*)arg,
+ &compat_cop, sizeof(compat_cop));
default:
return -EINVAL;