On Mon, Feb 28, 2011 at 12:06 AM, Ingo Molnar <mingo@xxxxxxx> wrote: > > * Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > >> + new_addr = memblock_alloc(new_log_buf_len, PAGE_SIZE); >> + if (new_addr != MEMBLOCK_ERROR) >> + new_log_buf = __va(new_addr); >> + else >> + new_log_buf = alloc_bootmem(new_log_buf_len); > > alloc_bootmem() can fail, especially if someone uses a too large boot parameter > value - and your code does not check for failure. alloc_bootmem will panic if it fails. static void * __init ___alloc_bootmem(unsigned long size, unsigned long align, unsigned long goal, unsigned long limit) { void *mem = ___alloc_bootmem_nopanic(size, align, goal, limit); if (mem) return mem; /* * Whoops, we cannot satisfy the allocation request. */ printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size); panic("Out of memory"); return NULL; } so it should be ok. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html