]> git.ipfire.org Git - people/arne_f/kernel.git/commitdiff
jbd2: fix use after free in jbd2_journal_start_reserved()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 18 Feb 2014 01:33:01 +0000 (20:33 -0500)
committerJiri Slaby <jslaby@suse.cz>
Wed, 5 Mar 2014 16:13:41 +0000 (17:13 +0100)
commit 92e3b40537707001d17bbad800d150ab04e53bf4 upstream.

If start_this_handle() fails then it leads to a use after free of
"handle".

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
fs/jbd2/transaction.c

index b0b74e58697b52a0eeedffdc001b988b9ea4f4a9..7272cc6977ec6ed6813f046b2d98ca7d162958e8 100644 (file)
@@ -514,11 +514,13 @@ int jbd2_journal_start_reserved(handle_t *handle, unsigned int type,
         * similarly constrained call sites
         */
        ret = start_this_handle(journal, handle, GFP_NOFS);
-       if (ret < 0)
+       if (ret < 0) {
                jbd2_journal_free_reserved(handle);
+               return ret;
+       }
        handle->h_type = type;
        handle->h_line_no = line_no;
-       return ret;
+       return 0;
 }
 EXPORT_SYMBOL(jbd2_journal_start_reserved);