USB: usbfs: properly clean up the as structure on error paths
commit97fde87ccff1bf623631c58a1f032533983cb090
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 17 Feb 2010 04:35:07 +0000 (16 20:35 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Apr 2010 22:55:43 +0000 (1 15:55 -0700)
treed0fb9679f2097264bd3a9d3b32b79945a3c682f2
parentc89094b689c85b9e6c2fcf97e0c7d81620e46f79
USB: usbfs: properly clean up the as structure on error paths

commit ddeee0b2eec2a51b0712b04de4b39e7bec892a53 upstream

USB: usbfs: properly clean up the as structure on error paths

I notice that the processcompl_compat() function seems to be leaking the
'struct async *as' in the error paths.

I think that the calling convention is fundamentally buggered. The
caller is the one that did the "reap_as()" to get the as thing, the
caller should be the one to free it too.

Freeing it in the caller also means that it very clearly always gets
freed, and avoids the need for any "free in the error case too".

From: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Marcus Meissner <meissner@suse.de>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Acked-by: Jeff Mahoney <jeffm@suse.com>
drivers/usb/core/devio.c