[libvirt] [PATCH v3 6/6] remote/rpc: Use virNetServerGetProgram() to determine the program
Marc Hartmayer
mhartmay at linux.ibm.com
Wed Nov 13 18:12:34 UTC 2019
On Wed, Nov 13, 2019 at 09:52 AM +0100, Pavel Hrdina <phrdina at redhat.com> wrote:
> On Fri, Nov 01, 2019 at 06:35:48PM +0100, Marc Hartmayer wrote:
>> Use virNetServerGetProgram() to determine the virNetServerProgram
>> instead of using hard coded global variables. This allows us to remove
>> the global variables @remoteProgram and @qemuProgram as they're now no
>> longer necessary.
>>
>> Signed-off-by: Marc Hartmayer <mhartmay at linux.ibm.com>
[…snip…]
>> virNetMessageErrorPtr rerr)
>> {
>> int rv = -1;
>> @@ -4180,6 +4180,12 @@ remoteDispatchConnectRegisterCloseCallback(virNetServerPtr server G_GNUC_UNUSED,
>> struct daemonClientPrivate *priv =
>> virNetServerClientGetPrivateData(client);
>> virConnectPtr conn = remoteGetHypervisorConn(client);
>> + virNetServerProgramPtr program;
>> +
>> + if (!(program = virNetServerGetProgram(server, msg))) {
>> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("no matching program found"));
>> + goto cleanup;
>> + }
>
> This doesn't look right. If the function fails we will jump to cleanup
> where we will try to unlock &priv->lock. This has to happen after we
> acquire that lock.
>
> Pavel
Yep, will fix that as well. Shall I directly return in the error case or
jump to another label (e.g. 'cleanup_unlock')?
Or do see any reason why we should hold the priv->lock during the
virNetServerGetProgram call?
--
Kind regards / Beste Grüße
Marc Hartmayer
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Matthias Hartmann
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the libvir-list
mailing list