]> xenbits.xensource.com Git - libvirt.git/commitdiff
admin: fix leak of typed parameters on error
authorDaniel P. Berrangé <berrange@redhat.com>
Thu, 22 Dec 2022 16:15:27 +0000 (11:15 -0500)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 10 Jan 2023 13:26:04 +0000 (08:26 -0500)
A few admin client methods had the xdr_free call the wrong
side of the cleanup label, so typed parameters would not
be freed on error.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
src/admin/admin_remote.c

index 012488bff3c6e755d36100cbe768061f39d11807..f99b93eef65f8cef4b61366099dfb89616b9a32b 100644 (file)
@@ -269,9 +269,9 @@ remoteAdminServerGetThreadPoolParameters(virAdmServerPtr srv,
         goto cleanup;
 
     rv = 0;
-    xdr_free((xdrproc_t)xdr_admin_server_get_threadpool_parameters_ret, (char *) &ret);
 
  cleanup:
+    xdr_free((xdrproc_t)xdr_admin_server_get_threadpool_parameters_ret, (char *) &ret);
     virObjectUnlock(priv);
     return rv;
 }
@@ -342,9 +342,9 @@ remoteAdminClientGetInfo(virAdmClientPtr client,
         goto cleanup;
 
     rv = 0;
-    xdr_free((xdrproc_t)xdr_admin_client_get_info_ret, (char *) &ret);
 
  cleanup:
+    xdr_free((xdrproc_t)xdr_admin_client_get_info_ret, (char *) &ret);
     virObjectUnlock(priv);
     return rv;
 }
@@ -380,10 +380,10 @@ remoteAdminServerGetClientLimits(virAdmServerPtr srv,
         goto cleanup;
 
     rv = 0;
-    xdr_free((xdrproc_t) xdr_admin_server_get_client_limits_ret,
-             (char *) &ret);
 
  cleanup:
+    xdr_free((xdrproc_t) xdr_admin_server_get_client_limits_ret,
+             (char *) &ret);
     virObjectUnlock(priv);
     return rv;
 }