Commit f4ea823b authored by John Stultz's avatar John Stultz Committed by Greg Kroah-Hartman

staging: ion: Fix possible null pointer dereference

The kbuild test robot reported:

drivers/staging/android/ion/ion_system_heap.c:122 alloc_largest_available() error: potential null dereference 'info'.  (kmalloc returns null)

Where the pointer returned from kmalloc goes unchecked for failure.

This patch checks the return for NULL, and reworks the logic, as
suggested by Colin, so we allocate the page_info structure first.
Acked-by: default avatarColin Cross <ccross@android.com>
Cc: Android Kernel Team <kernel-team@android.com>
Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 679bcc93
...@@ -108,6 +108,10 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap, ...@@ -108,6 +108,10 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
struct page_info *info; struct page_info *info;
int i; int i;
info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
if (!info)
return NULL;
for (i = 0; i < num_orders; i++) { for (i = 0; i < num_orders; i++) {
if (size < order_to_size(orders[i])) if (size < order_to_size(orders[i]))
continue; continue;
...@@ -118,11 +122,12 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap, ...@@ -118,11 +122,12 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
if (!page) if (!page)
continue; continue;
info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
info->page = page; info->page = page;
info->order = orders[i]; info->order = orders[i];
return info; return info;
} }
kfree(info);
return NULL; return NULL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment