Re: use after free of struct powernow_k8_data

From: Andrew Morton
Date: Wed Sep 30 2009 - 16:31:50 EST


On Thu, 24 Sep 2009 16:51:25 +0200
Michal Schmidt <mschmidt@xxxxxxxxxx> wrote:

> Hello,
>
> After resume from suspend I get:
>
> =============================================================================
> BUG kmalloc-256: Poison overwritten
> -----------------------------------------------------------------------------
>
> INFO: 0xffff880073bf1bb0-0xffff880073bf1bb7. First byte 0x12 instead of 0x6b
> INFO: Allocated in powernowk8_cpu_init+0x72/0xc27 [powernow_k8] age=290 cpu=0 pid=1782
> INFO: Freed in powernowk8_cpu_exit+0x6b/0x88 [powernow_k8] age=289 cpu=0 pid=1782
> INFO: Slab 0xffffea0002f059e8 objects=12 used=10 fp=0xffff880073bf1b88 flags=0x200000000000c3
> INFO: Object 0xffff880073bf1b88 @offset=2952 fp=0xffff880073bf1e18
>
> Bytes b4 0xffff880073bf1b78: ec 77 fe ff 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a __w____....ZZZZZZZZ
> Object 0xffff880073bf1b88: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
> Object 0xffff880073bf1b98: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
> Object 0xffff880073bf1ba8: 6b 6b 6b 6b 6b 6b 6b 6b 12 00 00 00 0c 00 00 00 kkkkkkkk........
> Object 0xffff880073bf1bb8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
>
> The overwritten values correspond to the currvid (0x12) and currfid (0x0c)
> fields if struct powernow_k8_data. Earlier in dmesg these exact values
> can be seen:
>
> powernow-k8: table matched fid 0xc, giving vid 0x12
> powernow-k8: target matches current values (fid 0xc, vid 0x12)
>
> It seems that something called query_current_values_with_pending_wait()
> while the struct was already freed.
>
> It is perfectly reproducible. The kernel is the latest from git
> (94a8d5caba74211ec76dac80fc6e2d5c391530df).
> I'm attaching the full dmesg and .config.
>

Do you know if this is a regression? If so, since which kernel version?

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/