dm log userspace: fix memory leak in dm_ulog_tfr_init failure path
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Wed, 1 Oct 2014 20:58:35 +0000 (22:58 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 14 Dec 2014 16:23:46 +0000 (16:23 +0000)
commit 56ec16cb1e1ce46354de8511eef962a417c32c92 upstream.

If cn_add_callback() fails in dm_ulog_tfr_init(), it does not
deallocate prealloced memory but calls cn_del_callback().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Reviewed-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/md/dm-log-userspace-transfer.c

index 1f23e04..e5bd3ef 100644 (file)
@@ -272,7 +272,7 @@ int dm_ulog_tfr_init(void)
 
        r = cn_add_callback(&ulog_cn_id, "dmlogusr", cn_ulog_callback);
        if (r) {
-               cn_del_callback(&ulog_cn_id);
+               kfree(prealloced_cn_msg);
                return r;
        }