aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2014-04-10 05:36:13 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-16 14:41:44 -0400
commitd21bb45081484b95fb0c80f1afa492a7275689c2 (patch)
treeb654756bf0b4e5658b62880093fc68a0124d06a3
parentef35a4f44bdc6f8c9f99a561fd1fd318305a4d98 (diff)
staging: unisys: use after free in error messages
We dereference "bus" when we report the error so we have to move the kfree() down a couple lines. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/unisys/uislib/uislib.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/unisys/uislib/uislib.c b/drivers/staging/unisys/uislib/uislib.c
index 8ea9c46e56ae..3152a2180c45 100644
--- a/drivers/staging/unisys/uislib/uislib.c
+++ b/drivers/staging/unisys/uislib/uislib.c
@@ -381,17 +381,17 @@ create_bus(CONTROLVM_MESSAGE *msg, char *buf)
381 cmd.add_vbus.busTypeGuid = msg->cmd.createBus.busDataTypeGuid; 381 cmd.add_vbus.busTypeGuid = msg->cmd.createBus.busDataTypeGuid;
382 cmd.add_vbus.busInstGuid = msg->cmd.createBus.busInstGuid; 382 cmd.add_vbus.busInstGuid = msg->cmd.createBus.busInstGuid;
383 if (!VirtControlChanFunc) { 383 if (!VirtControlChanFunc) {
384 kfree(bus);
385 LOGERR("CONTROLVM_BUS_CREATE Failed: virtpci callback not registered."); 384 LOGERR("CONTROLVM_BUS_CREATE Failed: virtpci callback not registered.");
386 POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, bus->busNo, 385 POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, bus->busNo,
387 POSTCODE_SEVERITY_ERR); 386 POSTCODE_SEVERITY_ERR);
387 kfree(bus);
388 return CONTROLVM_RESP_ERROR_VIRTPCI_DRIVER_FAILURE; 388 return CONTROLVM_RESP_ERROR_VIRTPCI_DRIVER_FAILURE;
389 } 389 }
390 if (!VirtControlChanFunc(&cmd)) { 390 if (!VirtControlChanFunc(&cmd)) {
391 kfree(bus);
392 LOGERR("CONTROLVM_BUS_CREATE Failed: virtpci GUEST_ADD_VBUS returned error."); 391 LOGERR("CONTROLVM_BUS_CREATE Failed: virtpci GUEST_ADD_VBUS returned error.");
393 POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, bus->busNo, 392 POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, bus->busNo,
394 POSTCODE_SEVERITY_ERR); 393 POSTCODE_SEVERITY_ERR);
394 kfree(bus);
395 return 395 return
396 CONTROLVM_RESP_ERROR_VIRTPCI_DRIVER_CALLBACK_ERROR; 396 CONTROLVM_RESP_ERROR_VIRTPCI_DRIVER_CALLBACK_ERROR;
397 } 397 }