diff options
-rw-r--r-- | ncr-sessions.c | 8 |
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(); |