summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_main.c
diff options
context:
space:
mode:
authorPhilipp Reisner2011-01-27 10:55:20 +0100
committerPhilipp Reisner2011-09-28 10:26:22 +0200
commitb42a70ad32539019c15457fce172194b0f8353d5 (patch)
tree41032153cedc143995b6866a7ec631a656c7f7f8 /drivers/block/drbd/drbd_main.c
parentdrbd: Implemented receiving of new style packets on meta socket (diff)
downloadkernel-qcow2-linux-b42a70ad32539019c15457fce172194b0f8353d5.tar.gz
kernel-qcow2-linux-b42a70ad32539019c15457fce172194b0f8353d5.tar.xz
kernel-qcow2-linux-b42a70ad32539019c15457fce172194b0f8353d5.zip
drbd: Do not access tconn after it was freed
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r--drivers/block/drbd/drbd_main.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index f8cb15c84ed8..8349d42fa131 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -3260,10 +3260,6 @@ static void drbd_delete_device(unsigned int minor)
kfree(mdev->p_uuid);
/* mdev->p_uuid = NULL; */
- kfree(mdev->tconn->int_dig_out);
- kfree(mdev->tconn->int_dig_in);
- kfree(mdev->tconn->int_dig_vv);
-
/* cleanup the rest that has been
* allocated from drbd_new_device
* and actually free the mdev itself */
@@ -3377,6 +3373,9 @@ void drbd_free_tconn(struct drbd_tconn *tconn)
write_unlock_irq(&global_state_lock);
kfree(tconn->name);
+ kfree(tconn->int_dig_out);
+ kfree(tconn->int_dig_in);
+ kfree(tconn->int_dig_vv);
kfree(tconn);
}