Staging: bcm: avoid use-after-free in bcm_char_ioctl()
authorXi Wang <xi.wang@gmail.com>
Wed, 6 Mar 2013 21:32:25 +0000 (16:32 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Mar 2013 16:15:32 +0000 (09:15 -0700)
Free pBulkBuffer (pvBuffer) after pBulkBuffer->Register.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/bcm/Bcmchar.c

index 491e2bf..35641e5 100644 (file)
@@ -1148,8 +1148,8 @@ cntrlEnd:
 
                if (((ULONG)pBulkBuffer->Register & 0x0F000000) != 0x0F000000 ||
                        ((ULONG)pBulkBuffer->Register & 0x3)) {
-                       kfree(pvBuffer);
                        BCM_DEBUG_PRINT (Adapter, DBG_TYPE_PRINTK, 0, 0, "WRM Done On invalid Address : %x Access Denied.\n", (int)pBulkBuffer->Register);
+                       kfree(pvBuffer);
                        Status = -EINVAL;
                        break;
                }