summaryrefslogtreecommitdiffstats
path: root/ncr-key.c
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-07-13 20:11:13 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-19 09:29:01 +0200
commitcf06dd8459db5331f744141e644ad756007f56e2 (patch)
tree6ef44e3b39d2e641ba8e8667754894af72331396 /ncr-key.c
parent997d9a1761dfb8d05aa5fc4aa3c85145ab41c456 (diff)
downloadkernel-crypto-cf06dd8459db5331f744141e644ad756007f56e2.tar.gz
kernel-crypto-cf06dd8459db5331f744141e644ad756007f56e2.tar.xz
kernel-crypto-cf06dd8459db5331f744141e644ad756007f56e2.zip
Don't access key_item_st after freeing it
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'ncr-key.c')
-rw-r--r--ncr-key.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ncr-key.c b/ncr-key.c
index 5b812769760..134831e55b6 100644
--- a/ncr-key.c
+++ b/ncr-key.c
@@ -145,13 +145,13 @@ exit:
void _ncr_key_item_put( struct key_item_st* item)
{
+ if (atomic_read(&item->writer) > 0)
+ atomic_dec(&item->writer);
if (atomic_dec_and_test(&item->refcnt)) {
ncr_limits_remove(item->uid, item->pid, LIMIT_TYPE_KEY);
ncr_key_clear(item);
kfree(item);
}
- if (atomic_read(&item->writer) > 0)
- atomic_dec(&item->writer);
}
int ncr_key_init(struct list_sem_st* lst, void __user* arg)