xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 3 May 2023 15:11:35 +0000 (18:11 +0300)
committerJuergen Gross <jgross@suse.com>
Wed, 24 May 2023 15:25:43 +0000 (17:25 +0200)
commit8fafac202d18230bb9926bda48e563fd2cce2a4f
tree7260271387adf7aab269fe3c833b889945ae57e5
parentb6ebaa8100090092aa602530d7e8316816d0c98d
xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()

In the pvcalls_new_active_socket() function, most error paths call
pvcalls_back_release_active(fedata->dev, fedata, map) which calls
sock_release() on "sock".  The bug is that the caller also frees sock.

Fix this by making every error path in pvcalls_new_active_socket()
release the sock, and don't free it in the caller.

Fixes: 5db4d286a8ef ("xen/pvcalls: implement connect command")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/e5f98dc2-0305-491f-a860-71bbd1398a2f@kili.mountain
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/pvcalls-back.c