]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/android/ion/ion_system_heap.c
staging: ion: Fix possible null pointer dereference
[~andy/linux] / drivers / staging / android / ion / ion_system_heap.c
index 144b22727505e6fefcb756cc4a5c72089baae1f0..7f0729130d6583d776734e9df7a89b234b150065 100644 (file)
@@ -108,6 +108,10 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
        struct page_info *info;
        int i;
 
+       info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
+       if (!info)
+               return NULL;
+
        for (i = 0; i < num_orders; i++) {
                if (size < order_to_size(orders[i]))
                        continue;
@@ -118,11 +122,12 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
                if (!page)
                        continue;
 
-               info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
                info->page = page;
                info->order = orders[i];
                return info;
        }
+       kfree(info);
+
        return NULL;
 }