[libvirt] [PATCH] build: Embed dbus_message_unref in virdbus

Daniel P. Berrange berrange at redhat.com
Mon Apr 14 12:02:02 UTC 2014


On Mon, Apr 14, 2014 at 01:41:18PM +0200, Martin Kletzander wrote:
> Adding dbus_message_unref() into virDBusMessageDecodeArgs() makes sure
> that the message gets unref'd, thus making one more pure dbus call not
> necessary.  Even though we are calling a lot of dbus_* functions
> outside virdbus (which should be fixed in the future IMHO), this patch
> fixes only this one instance because it merely aims to fix a
> build-breaker caused by improperly included dbus.h.  The message
> printed when failing (using --without-dbus) is:


> diff --git a/src/util/virdbus.c b/src/util/virdbus.c
> index 0cd3858..aef1d34 100644
> --- a/src/util/virdbus.c
> +++ b/src/util/virdbus.c
> @@ -1112,6 +1112,7 @@ int virDBusMessageDecodeArgs(DBusMessage* msg,
>      }
> 
>      ret = virDBusMessageIterDecode(&iter, types, args);
> +    dbus_message_unref(msg);
> 
>   cleanup:
>      return ret;

NACK, this is basically reverting the change I did previously and
will break the firewall patches I have pending. 

  commit dc7f3ffc023e3decf6aca3a2cfba2d884f0413a4
  Author: Daniel P. Berrange <berrange at redhat.com>
  Date:   Wed Mar 19 10:55:13 2014 +0000

      Remove bogus unref in virDBusMessageRead
    
      The virDBusMessageRead method should not have side-effects on
      the message parameter passed in, so unref'ing it is wrong.
      The caller should unref only when they decided they are done
      with it.
    
      Signed-off-by: Daniel P. Berrange <berrange at redhat.com>

  diff --git a/src/util/virdbus.c b/src/util/virdbus.c
  index ecfe9f6..cbaf995 100644
  --- a/src/util/virdbus.c
  +++ b/src/util/virdbus.c
  @@ -1421,7 +1421,6 @@ int virDBusMessageRead(DBusMessage *msg,
       ret = virDBusMessageDecodeArgs(msg, types, args);
       va_end(args);
 
  -    dbus_message_unref(msg);
       return ret;
   }

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list