summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-15 15:16:37 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-17 20:49:04 +0200
commit9996c7d579c4d424497d45f4645bb30baac3d408 (patch)
tree2c83f97bca05f846fcff210c8ac3267701b63109
parent780a3de303e5cf7534123aa8a9518ed74537659b (diff)
downloadcryptodev-linux-9996c7d579c4d424497d45f4645bb30baac3d408.tar.gz
cryptodev-linux-9996c7d579c4d424497d45f4645bb30baac3d408.tar.xz
cryptodev-linux-9996c7d579c4d424497d45f4645bb30baac3d408.zip
Some fix in _once.
-rw-r--r--ncr-sessions.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ncr-sessions.c b/ncr-sessions.c
index 1edeb01..6ac8f0f 100644
--- a/ncr-sessions.c
+++ b/ncr-sessions.c
@@ -271,6 +271,9 @@ int ncr_session_init(struct ncr_lists* lists, void __user* arg)
ret = 0;
+ session.ses = ns->desc;
+ copy_to_user( arg, &session, sizeof(session));
+
fail:
if (key) _ncr_key_item_put(key);
if (ret < 0)
@@ -478,6 +481,7 @@ fail:
int ncr_session_once(struct ncr_lists* lists, void __user* arg)
{
struct __user ncr_session_once_op_st* op = arg;
+ struct ncr_session_once_op_st kop;
int ret;
ret = ncr_session_init(lists, &op->init);
@@ -486,6 +490,10 @@ int ncr_session_once(struct ncr_lists* lists, void __user* arg)
return ret;
}
+ copy_from_user(&kop, arg, sizeof(kop));
+ kop.op.ses = kop.init.ses;
+ copy_to_user(arg, &kop, sizeof(kop));
+
ret = ncr_session_final(lists, &op->op);
if (ret < 0) {
err();