Messages in this thread Patch in this message | | | Date | Sat, 13 Sep 2003 21:39:19 +0200 (MEST) | From | Mikael Pettersson <> | Subject | [PATCH][2.4.23-pre4] page_alloc uninitialised variable bug |
| |
mm/page_alloc in 2.4.23-pre4 triggers this warning:
page_alloc.c: In function `balance_classzone': page_alloc.c:259: warning: `__freed' might be used uninitialized in this function
There is a case where balance_classzone() returns NULL and an uninitialised value in *freed, and the caller, __alloc_pages(), also uses the uninitialised value.
Changing balance_classzone() to not do "*freed = __freed;" in this case is inadequate since __alloc_pages() will still look at the bogus value. Someone needs to initialise the damn thing; the patch below makes balance_classzone() do it.
/Mikael
--- linux-2.4.23-pre4/mm/page_alloc.c.~1~ 2003-09-13 19:11:48.000000000 +0200 +++ linux-2.4.23-pre4/mm/page_alloc.c 2003-09-13 20:58:56.000000000 +0200 @@ -256,7 +256,7 @@ static struct page * balance_classzone(zone_t * classzone, unsigned int gfp_mask, unsigned int order, int * freed) { struct page * page = NULL; - int __freed; + int __freed = 0; if (!(gfp_mask & __GFP_WAIT)) goto out; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |