1. 01 7月, 2016 6 次提交
  2. 30 6月, 2016 10 次提交
  3. 29 6月, 2016 2 次提交
    • E
      admin: fix virt-admin startup crash by calling virAdmInitialize · c924965b
      Erik Skultety 提交于
      Similarly to what virsh virt-login-shell do, call virAdmInitialize prior to
      initializing an event loop and initializing the error handler. Commit 97973ebb
      described and fixed an identical issue for libvirt_lxc.
      Since virAdmInitialize becomes a public API after applying this patch,
      the symbol is also added to public syms and the doc string of the method is
      slightly enhanced analogically to virInitialize.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      c924965b
    • J
      Fix possible invalid read in adminClientGetInfo · a3f565b3
      Ján Tomko 提交于
      virNetServerClientGetInfo returns the client's remote address
      as a string, which is a part of the client object.
      
      Use VIR_STRDUP to make a copy which can be freely accessed
      even after the virNetServerClient object is unlocked.
      
      To reproduce, put a sleep between virObjectUnlock in
      virNetServerClientGetInfo and virTypedParamsAddString in
      adminClientGetInfo, then close the queried connection during
      that sleep.
      a3f565b3
  4. 28 6月, 2016 5 次提交
    • M
      virStorageTranslateDiskSourcePool: Avoid double free · ca5d51df
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1316370
      
      Consider the following disk for a domain:
      
          <disk type='volume' device='cdrom'>
            <driver name='qemu' type='raw'/>
            <auth username='libvirt'>
              <secret type='iscsi' usage='libvirtiscsi'/>
            </auth>
            <source pool='iscsi-secret-pool' volume='unit:0:0:0' mode='direct' startupPolicy='optional'/>
            <target dev='sda' bus='scsi'/>
            <readonly/>
            <address type='drive' controller='0' bus='0' target='0' unit='0'/>
          </disk>
      
      Now, startupPolicy is currently not allowed for iscsi disks, so
      one would expect an error message to be thrown. But what a
      surprise is waiting for users if they try to start up such
      domain:
      
      ==15724== Invalid free() / delete / delete[] / realloc()
      ==15724==    at 0x4C2B1F0: free (vg_replace_malloc.c:473)
      ==15724==    by 0x54B7A69: virFree (viralloc.c:582)
      ==15724==    by 0x552DC90: virStorageAuthDefFree (virstoragefile.c:1549)
      ==15724==    by 0x552F023: virStorageSourceClear (virstoragefile.c:2055)
      ==15724==    by 0x552F054: virStorageSourceFree (virstoragefile.c:2067)
      ==15724==    by 0x55556AA: virDomainDiskDefFree (domain_conf.c:1562)
      ==15724==    by 0x5557ABE: virDomainDefFree (domain_conf.c:2547)
      ==15724==    by 0x1B43CC42: qemuProcessStop (qemu_process.c:5918)
      ==15724==    by 0x1B43BA2E: qemuProcessStart (qemu_process.c:5511)
      ==15724==    by 0x1B48993E: qemuDomainObjStart (qemu_driver.c:7050)
      ==15724==    by 0x1B489B9A: qemuDomainCreateWithFlags (qemu_driver.c:7104)
      ==15724==    by 0x1B489C01: qemuDomainCreate (qemu_driver.c:7122)
      ==15724==  Address 0x21cfbb90 is 0 bytes inside a block of size 48 free'd
      ==15724==    at 0x4C2B1F0: free (vg_replace_malloc.c:473)
      ==15724==    by 0x54B7A69: virFree (viralloc.c:582)
      ==15724==    by 0x552DC90: virStorageAuthDefFree (virstoragefile.c:1549)
      ==15724==    by 0x12D1C8D4: virStorageTranslateDiskSourcePool (storage_driver.c:3475)
      ==15724==    by 0x1B4396E4: qemuProcessPrepareDomain (qemu_process.c:4896)
      ==15724==    by 0x1B43B880: qemuProcessStart (qemu_process.c:5466)
      ==15724==    by 0x1B48993E: qemuDomainObjStart (qemu_driver.c:7050)
      ==15724==    by 0x1B489B9A: qemuDomainCreateWithFlags (qemu_driver.c:7104)
      ==15724==    by 0x1B489C01: qemuDomainCreate (qemu_driver.c:7122)
      ==15724==    by 0x561CA97: virDomainCreate (libvirt-domain.c:6787)
      ==15724==    by 0x12B6FD: remoteDispatchDomainCreate (remote_dispatch.h:4116)
      ==15724==    by 0x12B61A: remoteDispatchDomainCreateHelper (remote_dispatch.h:4092)
      
      The problem is, in virStorageTranslateDiskSourcePool disk
      def->src->auth is freed, but the pointer is not set to NULL. So
      later, when qemuProcessStop starts to free the domain definition,
      virStorageAuthDefFree() tries to free the memory again, instead
      of jumping out immediately.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      ca5d51df
    • J
      logging: fixing log level initialization from cmdline · c59b9e14
      Jaroslav Suchanek 提交于
      Reorder code for setting default log level from cmdline prior
      initialization of log outputs. Thus the --verbose option is reflected.
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1325072
      c59b9e14
    • J
      fa3c5585
    • A
      vz: Fix indentation in prlsdkGetNetAddresses() · a9a2abd4
      Andrea Bolognani 提交于
      a9a2abd4
    • O
      vz: fix build for virNetDev* changes · a2adcc1b
      Olga Krishtal 提交于
      Patch fixes vz build after changes in IP-related netdev functions(cf0568b0, fbc1843d).
      Signed-off-by: NOlga Krishtal <okrishtal@virtuozzo.com>
      a2adcc1b
  5. 27 6月, 2016 17 次提交
    • J
      Revert "util: new function virNetDevIPInfoAddToDev" · 05eab475
      Ján Tomko 提交于
      This reverts commit f1e0d0da.
      
      This feature was accidentally pushed in the feature freeze.
      05eab475
    • J
      Revert "conf: allow setting peer address in <ip> element of <interface>" · f6acf039
      Ján Tomko 提交于
      This reverts commit 93135abf.
      
      This feature was accidentally pushed in the feature freeze.
      f6acf039
    • J
      Revert "conf: support host-side IP/route information in <interface>" · d6584565
      Ján Tomko 提交于
      This reverts commit fe6a7789.
      
      This feature was accidentally pushed in the feature freeze.
      d6584565
    • J
      Revert "util: support setting peer for virNetDevIPInfo addresses" · cba06aea
      Ján Tomko 提交于
      This reverts commit cb20f989.
      
      This feature was accidentally pushed in the feature freeze.
      cba06aea
    • J
      Revert "lxc: support setting host-side IP addresses/routes" · 1549f168
      Ján Tomko 提交于
      This reverts commit cd5c9f21.
      
      This feature was accidentally pushed in the feature freeze.
      1549f168
    • J
      Revert "qemu: support setting host-side IP addresses/routes" · 84d47a3c
      Ján Tomko 提交于
      This reverts commit 0b4645a7.
      
      This feature was accidentally pushed in the feature freeze.
      84d47a3c
    • A
      Clean up after virNetDevIP creation · 7970436e
      Andrea Bolognani 提交于
      Commit cf0568b0 moved a bunch of functions from virNetDev
      to the more specific virNetDevIP; however, not all of the
      existing uses were moved properly, causing build failures on
      FreeBSD.
      
      Complete the transition to the new names and drop the
      obsolete declarations from the header file while at it.
      7970436e
    • A
      util: netdevip: Include vircommand.h · 014dd112
      Andrea Bolognani 提交于
      Not including the header causes
      
        util/virnetdevip.c:520:5: error:
        unknown type name 'virCommandPtr'; did you mean 'virCondPtr'?
          virCommandPtr cmd = NULL;
          ^~~~~~~~~~~~~
      
      and plenty more similar failures when compiling on FreeBSD.
      014dd112
    • M
      libvirtd.conf: Fix invalid default of max_anonymous_clients · 60f1f108
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1343442
      
      When a client connects, it is placed into a queue. As soon as it
      authenticate, it is taken out of that queue and placed into a
      different one. Now, we have a setting in the daemon config file
      that allows users to control the length of the queue of yet not
      authenticated clients. By default, it has a value 20 but in the
      description to the config knob we clam it's zero.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      60f1f108
    • L
      qemu: support setting host-side IP addresses/routes · 0b4645a7
      Laine Stump 提交于
      For type='ethernet' interfaces only.
      0b4645a7
    • L
      lxc: support setting host-side IP addresses/routes · cd5c9f21
      Laine Stump 提交于
      cd5c9f21
    • L
      util: support setting peer for virNetDevIPInfo addresses · cb20f989
      Laine Stump 提交于
      This will apply to any IP address setting that uses
      virNetDevIPInfoAddToDev() (which so far is only the guest-side of LXC
      type='ethernet' interfaces).
      cb20f989
    • L
      conf: support host-side IP/route information in <interface> · fe6a7789
      Laine Stump 提交于
      This is place as a sub-element of <source>, where other aspects of the
      host-side connection to the network device are located (network or
      bridge name, udp listen port, etc). It's a bit odd that the interface
      we're configuring with this info is itself named in <target dev='x'/>,
      but that ship sailed long ago:
      
          <interface type='ethernet'>
            <mac address='00:16:3e:0f:ef:8a'/>
            <source>
              <ip address='192.168.122.12' family='ipv4'
                  prefix='24' peer='192.168.122.1'/>
              <ip address='192.168.122.13' family='ipv4' prefix='24'/>
              <route family='ipv4' address='0.0.0.0'
                     gateway='192.168.122.1'/>
              <route family='ipv4' address='192.168.124.0' prefix='24'
                     gateway='192.168.124.1'/>
            </source>
          </interface>
      
      In practice, this will likely only be useful for type='ethernet', so
      its presence in any other type of interface is currently forbidden in
      the generic device Validate function (but it's been put into the
      general population of virDomainNetDef rather than the
      ethernet-specific union member so that 1) we can more easily add the
      capability to other types, and 2) we can retain the info when set to
      an invalid interface type all the way through to validation and report
      a proper error, rather than just ignoring it (which is currently what
      happens for many other type-specific settings).
      
      (NB: The already-existing configuration of IP info for the guest-side
      of interfaces is in subelements directly under <interface>, and the
      name of the guest-side interface (when configurable) is in <guest
      dev='x'/>).
      fe6a7789
    • V
      conf: allow setting peer address in <ip> element of <interface> · 93135abf
      Vasiliy Tolstov 提交于
      The peer attribute is used to set the property of the same name in the
      interface IP info:
      
        <interface type='ethernet'>
          ...
          <ip family='ipv4' address='192.168.122.5'
              prefix='32' peer='192.168.122.6'/>
          ...
        </interface>
      
      Note that this element is used to set the IP information on the
      *guest* side interface, not the host side interface - that will be
      supported in an upcoming patch.
      
      (This is an updated *re*-commit of commit 690969af, which was
      subsequently reverted in commit 1d14b13f).
      Signed-off-by: NVasiliy Tolstov <v.tolstov@selfip.ru>
      Signed-off-by: NLaine Stump <laine@laine.org>
      93135abf
    • L
      util: new function virNetDevIPInfoAddToDev · f1e0d0da
      Laine Stump 提交于
      This patch takes the code out of
      lxcContainerRenameAndEnableInterfaces() that adds all IP addresses and
      IP routes to the interface, and puts it into a utility function
      virNetDevIPInfoAddToDev() in virnetdevip.c so that it can be used by
      anyone.
      
      One small change in functionality -
      lxcContainerRenameAndEnableInterfaces() previously would add all IP
      addresses to the interface while it was still offline, then set the
      interface online, and then add the routes. Because I don't want the
      utility function to set the interface online, I've moved this up so
      the interface is first set online, then IP addresses and routes are
      added. This is the same order that the network service from
      initscripts (in ifup-ether) does it, so it shouldn't pose any problem
      (and hasn't, in the tests that I've run).
      f1e0d0da
    • L
      lxc: move debug/error log when adding IP addresses to virNetDevIPAddrAdd · 4ff9ec7d
      Laine Stump 提交于
      It makes more sense to have the logging at the lower level so other
      callers can share the goodness.
      
      While removing so much stuff from / touching so many lines in
      lxcContainerRenameAndEnableInterfaces() (which used to have this
      debug/error logging), label names were changed and it was updated to
      use the now-more-common method of initializing ret to -1 (failure),
      then setting to 0 right before the cleanup label.
      4ff9ec7d
    • L
      conf: clean up after adding calls to virNetDevIPInfo helpers · 25599582
      Laine Stump 提交于
      virDomainNetIPInfoParseXML() and virDomainNetIPInfoFormat() are no
      longer "unused", so we can now remove the "ATTRIBUTE_UNUSED" from
      their definitions, since virDomainNetIPInfoFormat() is now the only
      caller of virDomainNetIPsFormat() and virDomainNetRoutesFormat(),
      those two functions can simply be subsumed into
      virDomainNetIPInfoFormat().
      25599582