On Sat, Jun 4, 2011 at 2:54 PM, Andre Bartke <andre.bartke@xxxxxxxxxxxxxx> wrote: > On Sat, 04 Jun 2011 23:35:16 +0200 > "Michal Nazarewicz" <mina86@xxxxxxxxxx> wrote: > >> On Sat, 04 Jun 2011 21:34:54 +0200, Andre Bartke >> <andre.bartke@xxxxxxxxxxxxxx> wrote: >> > diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c >> > @@ -700,6 +701,7 @@ static int rndis_reset_response(int configNr, >> > rndis_reset_msg_type *buf) >> > resp->AddressingReset = cpu_to_le32(1); >> > params->resp_avail(params->v); >> > + kfree(r); >> > return 0; >> > } >> >> Have you tested this? It does not look right to me. >> rndis_add_response() allocates memory and puts the request on a >> list. It is later freed in rndis_free_response(). >> > > Nope, the only way I can test this is a build - which it does. > You might be right though. building != correct r is being added to a list in rndis_add_response Andre is right, rndis_free_response handles list removal 982 if (r && r->buf == buf) { 983 list_del(&r->list); 984 kfree(r); 985 } in fact all of the kfree calls I believe are incorrect. Connor > -- > 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/ > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html