kaiser: fix unlikely error in alloc_ldt_struct()
authorHugh Dickins <hughd@google.com>
Tue, 5 Dec 2017 04:13:35 +0000 (20:13 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jan 2018 14:46:34 +0000 (15:46 +0100)
An error from kaiser_add_mapping() here is not at all likely, but
Eric Biggers rightly points out that __free_ldt_struct() relies on
new_ldt->size being initialized: move that up.

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/ldt.c

index 567bdbd7d917f8e4cb69628b427b4b243e78d5ca..8bc68cfc0d33fcdc014e19c01b5f016c5afaa8a3 100644 (file)
@@ -79,11 +79,11 @@ static struct ldt_struct *alloc_ldt_struct(int size)
 
        ret = kaiser_add_mapping((unsigned long)new_ldt->entries, alloc_size,
                                 __PAGE_KERNEL);
+       new_ldt->size = size;
        if (ret) {
                __free_ldt_struct(new_ldt);
                return NULL;
        }
-       new_ldt->size = size;
        return new_ldt;
 }