Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70644786 authored by Oleg Drokin's avatar Oleg Drokin Committed by Jens Axboe
Browse files

drbd: fix memory leak in drbd_adm_resize



new_disk_conf could be leaked if the follow on checks fail,
so make sure to free it on error if it was not assigned yet.

Found with smatch.

Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 5bded4ef
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2706,6 +2706,7 @@ int drbd_adm_resize(struct sk_buff *skb, struct genl_info *info)
		mutex_unlock(&device->resource->conf_update);
		synchronize_rcu();
		kfree(old_disk_conf);
		new_disk_conf = NULL;
	}

	ddsf = (rs.resize_force ? DDSF_FORCED : 0) | (rs.no_resync ? DDSF_NO_RESYNC : 0);
@@ -2739,6 +2740,7 @@ int drbd_adm_resize(struct sk_buff *skb, struct genl_info *info)

 fail_ldev:
	put_ldev(device);
	kfree(new_disk_conf);
	goto fail;
}