1. 27 4月, 2017 20 次提交
  2. 26 4月, 2017 17 次提交
  3. 25 4月, 2017 3 次提交
    • J
      test: Remove unnecessary unlocks in cleanup paths · 6b5ac3c7
      John Ferlan 提交于
      Commit id '865f479d' altered the logic to use a common test*ObjFindByName
      helpers which would lock/unlock the test driver; however, a few cleanup paths
      in that cleanup missed removing the Unlock, so remove it now.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      6b5ac3c7
    • J
      remote: Fix possible use-after-free when sending event message · fe8f1c8b
      John Ferlan 提交于
      Based upon an idea and some research by Wang King <king.wang@huawei.com>
      and xinhua.Cao <caoxinhua@huawei.com>.
      
      Since we're assigning the 'client' to our callback event lookaside list,
      it's imperative that we grab a reference to the object; otherwise, when
      the object is unref'd during virNetServerProcessClients when it's determined
      that the virNetServerClientIsClosed and the memory is free'd before perhaps
      the object event state callbacks are run.  When a virObjectLock() is run,
      before sending the message the following trace occurs;
      
          #0  0x00007fda223d66d8 in virClassIsDerivedFrom
              (klass=0xdeadbeef, parent=0x7fda24c81b40)
               at util/virobject.c:169
          #1  0x00007fda223d6a1e in virObjectIsClass
              (anyobj=anyobj@entry=0x7fd9e575b400, klass=<optimized out>)
               at util/virobject.c:365
          #2  0x00007fda223d6a44 in virObjectLock
              (anyobj=0x7fd9e575b400)
              at util/virobject.c:317
          #3  0x00007fda22507f71 in virNetServerClientSendMessage
              (client=client@entry=0x7fd9e575b400, msg=msg@entry=0x7fd9ec30de90)
              at rpc/virnetserverclient.c:1422
          #4  0x00007fda230d714d in remoteDispatchObjectEventSend
              (client=0x7fd9e575b400, program=0x7fda24c844e0, procnr=348,
               proc=0x7fda2310e5e0 <xdr_remote_domain_event_callback_tunable_msg>,
               data=0x7ffc3857fdb0)
              at remote.c:3803
          #5  0x00007fda230dd71b in remoteRelayDomainEventTunable
              (conn=<optimized out>, dom=0x7fda27cd7660, params=0x7fda27f3aae0,
               nparams=1,opaque=0x7fd9e6c99e00)
              at remote.c:1033
          #6  0x00007fda224484cb in virDomainEventDispatchDefaultFunc
              (conn=0x7fda27cd0120, event=0x7fda2736ea00, cb=0x7fda230dd610
               <remoteRelayDomainEventTunable>, cbopaque=0x7fd9e6c99e00)
              at conf/domain_event.c:1910
          #7  0x00007fda22446871 in virObjectEventStateDispatchCallbacks
              (callbacks=<optimized out>, callbacks=<optimized out>,
               event=0x7fda2736ea00,state=0x7fda24ca3960)
              at conf/object_event.c:722
          #8  virObjectEventStateQueueDispatch
              (callbacks=0x7fda24c65800, queue=0x7ffc3857fe90, state=0x7fda24ca3960)
              at conf/object_event.c:736
          #9  virObjectEventStateFlush (state=0x7fda24ca3960)
              at conf/object_event.c:814
          #10 virObjectEventTimer (timer=<optimized out>, opaque=0x7fda24ca3960)
              at conf/object_event.c:560
          #11 0x00007fda223ae8b9 in virEventPollDispatchTimeouts ()
              at util/vireventpoll.c:458
          #12 virEventPollRunOnce ()
              at util/vireventpoll.c:654
          #13 0x00007fda223ad1d2 in virEventRunDefaultImpl ()
              at util/virevent.c:314
          #14 0x00007fda225046cd in virNetDaemonRun (dmn=0x7fda24c775c0)
              at rpc/virnetdaemon.c:818
          #15 0x00007fda230d6351 in main (argc=<optimized out>, argv=<optimized out>)
              at libvirtd.c:1623
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      fe8f1c8b
    • J
      daemon: Rework remoteClientFreeFunc cleanup loops into C macro · 2033e8cc
      John Ferlan 提交于
      Rather than 'n' repetitive code segments, let's create a single macro
      which will make the code easier to read.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      2033e8cc