1. 04 5月, 2011 9 次提交
    • E
      qemu: remove dead assignment · 5f929dd3
      Eric Blake 提交于
      Detected by clang.
      
      * src/qemu/qemu_migration.c (qemuMigrationToFile): Nothing later
      uses is_reg.
      5f929dd3
    • E
      storage: use virCommand to avoid compiler warning · f72393fa
      Eric Blake 提交于
      clang didn't like the last increment to nargs.  But why even
      track nargs ourselves, when virCommand does it for us?
      
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendISCSIConnection): Switch to virCommand to avoid
      a dead-store warning on nargs.
      f72393fa
    • E
      cgroup: avoid leaking a file · ead2b433
      Eric Blake 提交于
      Clang detected a dead store to rc.  It turns out that in fixing this,
      I also found a FILE* leak.
      
      This is a subtle change in behavior, although unlikely to hit.  The
      pidfile is a kernel file, so we've probably got more serious problems
      under foot if we fail to parse one.  However, the previous behavior
      was that even if one pid file failed to parse, we tried others,
      whereas now we give up on the first failure.  Either way, though,
      the function returns -1, so the caller will know that something is
      going wrong, and that not all pids were necessarily reaped.  Besides,
      there were other instances already in the code where failure in the
      inner loop aborted the outer loop.
      
      * src/util/cgroup.c (virCgroupKillInternal): Abort rather than
      resuming loop on fscanf failure, and cleanup file on error.
      ead2b433
    • E
      qemu: silence clang false positives · d8f75281
      Eric Blake 提交于
      Clang 2.8 wasn't quite able to follow that persistentDef was
      assigned earlier if (flags & VIR_DOMAIN_MEM_CONFIG) is true.
      Silence this false positive, to make clang analysis easier to use.
      
      * src/qemu/qemu_driver.c (qemudDomainSetMemoryFlags): Add an
      annotation to silence clang's claim of a NULL dereference.
      d8f75281
    • E
      virsh: avoid null pointer dereference · 44699b32
      Eric Blake 提交于
      Clang detected that vol-download will call unlink(NULL) if there
      is a parse error during option parsing.  Also, mingw doesn't like
      unlinking an open file.
      
      * tools/virsh.c (cmdVolDownload): Only unlink file if created.
      44699b32
    • E
      pci: fix null pointer dereference · 1164e1a2
      Eric Blake 提交于
      Clang detected a null-pointer dereference regression, introduced
      in commit 4e8969eb.  Without this patch, a device with
      unbind_from_stub set to false would eventually try to call
      virFileExists on uncomputed drvdir.
      
      * src/util/pci.c (pciUnbindDeviceFromStub): Ensure drvdir is set
      before use.
      1164e1a2
    • E
      qemu: avoid null pointer dereference · 4d080ee4
      Eric Blake 提交于
      This code has had problems historically.  As originally
      written, in commit 6bcf2501 (Jun 08), it could call unlink
      on a random string, nuking an unrelated file.
      
      Then commit 182a80b9 (Sep 09), the code was rewritten to
      allocate tmp, with both a use-after-free bug and a chance to
      call unlink(NULL).
      
      Commit e206946d (Mar 11) fixed the use-after-free, but not the
      NULL dereference.  Thanks to clang for catching this!
      
      * src/qemu/qemu_driver.c (qemudDomainMemoryPeek): Don't call
      unlink on NULL.
      4d080ee4
    • E
      tests: avoid null pointer dereference · 4b4e8b57
      Eric Blake 提交于
      Unlikely to hit in real life, but clang noticed it.
      
      * tests/commandtest.c (checkoutput, test4, test18): Avoid
      unlink(NULL) on OOM.
      4b4e8b57
    • E
      Revert "lxc: Do not try to reconnect inactive domain when do lxcStartup" · 6e177fa1
      Eric Blake 提交于
      This reverts commit 0e7f7f85.
      
      From the mailing list:
      
      > So, AFAICT, this patch means we will never reconnect to any LXC
      > VMs now.
      >
      > The correct solution, is to refactor LXC driver startup to work
      > the same way as the QEMU driver startup.
      >
      >   - Load all the live state XML files (to pick up running VMs)
      >   - Reconnect to all VMs
      >   - Load all the persistent config XML files (to pick up any additional
      >     inactive guets)
      
      But that solution is invasive enough to be post-0.9.1.
      6e177fa1
  2. 03 5月, 2011 4 次提交
  3. 02 5月, 2011 2 次提交
    • C
      qemu: fix uninitialized variable warning · b15a8a1b
      Christophe Fergeau 提交于
      This commit fixes
      qemu/qemu_driver.c: In function 'qemuDomainModifyDeviceFlags':
      qemu/qemu_driver.c:4041:8: warning: 'ret' may be used uninitialized in this
      function [-Wuninitialized]
      qemu/qemu_driver.c:4013:9: note: 'ret' was declared here
      
      The variable is set to -1 so that the error paths are taken when the code
      to set it didn't get a chance to run. Without initializing it, we could
      return some an undefined value from this function.
      
      While I was at it, I made a trivial whitespace change in the same function
      to improve readability.
      b15a8a1b
    • G
      fix missing VLAN id for Qbg example · 170f2a87
      Gerhard Stenzel 提交于
      For IEEE 802.1Qbg, it is necessary to use a VLAN interface.
      vepa itself does not require a VLAN interface.
      
      Signed-off-by: Gerhard Stenzel <stenzel at de.ibm.com>
      170f2a87
  4. 01 5月, 2011 3 次提交
  5. 30 4月, 2011 7 次提交
    • M
      nwfilter: Fix memory leak in the ebtables subdriver · 0e7c7b8b
      Matthias Bolte 提交于
      Call shutdown functions for all subcomponents in nwfilterDriverShutdown.
      
      Make sure that this shutdown functions can safely be called multiple times
      and independent from the actual subcomponents state.
      0e7c7b8b
    • M
      feecc9f3
    • M
      Fix memory leak in __virExec · 9d50b323
      Matthias Bolte 提交于
      Commit e0d014f2 made binary potentially allocated on the heap.
      It was freed in the parent in the error path, but not in the success path
      that doesn't goto the cleanup label.
      
      Found by 'make -C tests valgrind'.
      9d50b323
    • E
      hash: fix memory leak regression · 701bee01
      Eric Blake 提交于
      Commit 1671d1dc introduced a memory leak in virHashFree, and
      wholesale table corruption in virHashRemoveSet (elements not
      requested to be freed are lost).
      
      * src/util/hash.c (virHashFree): Free bucket array.
      (virHashRemoveSet): Don't lose elements.
      * tests/hashtest.c (testHashCheckForEachCount): New method.
      (testHashCheckCount): Expose the bug.
      701bee01
    • C
      docs: Document <filesystem> device · 41a7835f
      Cole Robinson 提交于
      Tried to dredge through old changelogs and commits to come up with it, so
      may not be completely accurate.
      
      v2:
      Drop ambiguous 'containers'
      Use same mail archive for all links
      41a7835f
    • E
      build: fix getcwd portability problems · e39c46a5
      Eric Blake 提交于
      * bootstrap.conf (gnulib_modules): Add getcwd-lgpl.
      * tests/commandtest.c (checkoutput): Drop unused cwd.
      * tests/commandhelper.c (main): Let getcwd malloc.
      * tests/testutils.c (virTestMain): Likewise.
      * tools/virsh.c (cmdPwd): Likewise.
      (virshCmds): Expose cmdPwd and cmdCd on mingw.
      e39c46a5
    • E
      tests: simplify common setup · 20986e58
      Eric Blake 提交于
      A few of the tests were missing basic sanity checks, while most
      of them were doing copy-and-paste initialization (in fact, some
      of them pasted the argc > 1 check more than once!).  It's much
      nicer to do things in one common place, and minimizes the size of
      the next patch that fixes getcwd usage.
      
      * tests/testutils.h (EXIT_AM_HARDFAIL): New define.
      (progname, abs_srcdir): Define for all tests.
      (VIRT_TEST_MAIN): Change callback signature.
      * tests/testutils.c (virtTestMain): Do more common init.
      * tests/commandtest.c (mymain): Simplify.
      * tests/cputest.c (mymain): Likewise.
      * tests/esxutilstest.c (mymain): Likewise.
      * tests/eventtest.c (mymain): Likewise.
      * tests/hashtest.c (mymain): Likewise.
      * tests/networkxml2xmltest.c (mymain): Likewise.
      * tests/nodedevxml2xmltest.c (myname): Likewise.
      * tests/nodeinfotest.c (mymain): Likewise.
      * tests/nwfilterxml2xmltest.c (mymain): Likewise.
      * tests/qemuargv2xmltest.c (mymain): Likewise.
      * tests/qemuhelptest.c (mymain): Likewise.
      * tests/qemuxml2argvtest.c (mymain): Likewise.
      * tests/qemuxml2xmltest.c (mymain): Likewise.
      * tests/qparamtest.c (mymain): Likewise.
      * tests/sexpr2xmltest.c (mymain): Likewise.
      * tests/sockettest.c (mymain): Likewise.
      * tests/statstest.c (mymain): Likewise.
      * tests/storagepoolxml2xmltest.c (mymain): Likewise.
      * tests/storagevolxml2xmltest.c (mymain): Likewise.
      * tests/virbuftest.c (mymain): Likewise.
      * tests/virshtest.c (mymain): Likewise.
      * tests/vmx2xmltest.c (mymain): Likewise.
      * tests/xencapstest.c (mymain): Likewise.
      * tests/xmconfigtest.c (mymain): Likewise.
      * tests/xml2sexprtest.c (mymain): Likewise.
      * tests/xml2vmxtest.c (mymain): Likewise.
      20986e58
  6. 29 4月, 2011 5 次提交
    • E
      build: avoid test warnings on mingw · 63956ca0
      Eric Blake 提交于
      * .gnulib: Update to latest, for getaddrinfo fixes.
      Reported by Matthias Bolte.
      63956ca0
    • E
      virsh: avoid compiler warning on mingw · c63ec6e3
      Eric Blake 提交于
      We don't use gnulib's sanitizations for vfprintf, but vshDebug
      was used with %zu, which means that it would fail on mingw.
      Thank goodness the compiler indirectly caught this for us :)
      
      virsh.c: In function 'vshDebug':
      virsh.c:12105:5: warning: function might be possible candidate for
      'ms_printf' format attribute [-Wmissing-format-attribute]
      
      since mingw <stdio.h> hasn't yet added gcc attributes to vfprintf.
      
      * tools/virsh.c (vshDebug): Avoid vfprintf.
      (vshPrintExtra): Use lighter-weight fputs.
      Reported by Matthias Bolte.
      c63ec6e3
    • K
      libvirt/qemu - support persistent update of disks · f37c29c8
      KAMEZAWA Hiroyuki 提交于
      Support update of disks by MODIFY_CONFIG
      
      This patch includes changes for qemu's disk to support
      virDomainUpdateDeviceFlags() with VIR_DOMAIN_DEVICE_MODIFY_CONFIG.
      
      This patch adds support for CDROM/foppy disk types.
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      
      * src/qemu/qemu_driver.c
      (qemuDomainUpdateDeviceConfig): support cdrom/floppy.
      f37c29c8
    • J
      Xen: Do not generate net ifname if domain is inactive · 578391e1
      Jim Fehlig 提交于
      V2: Use virAsprintf instead of snprintf/strdup
      
      The xend driver will generate a virDomainNetDef ifname if one is not
      specified in xend sexpr, even if domain is inactive.  The result is
      network interface XML containing 'vif-1.Y' on dev attribute of target
      element, e.g.
      
        <interface type='bridge'>
          <target dev='vif-1.0'/>
          ...
      
      This patch changes the behavior to only generate the ifname if not
      specified in xend sexpr *and* domain is not inactive (id != -1).
      578391e1
    • Y
      xen: check if device is assigned to guest before reattaching · a8891666
      Yufang Zhang 提交于
      Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=664059
      
      Reattaching pci device back to host without destroying guest or
      detaching device from guest would cause host to crash. This patch adds
      a check before doing device reattach. If the device is being assigned
      to guest, libvirt refuses to reattach device to host. The patch only
      works for Xen, for it just checks xenstore to get pci device
      information.
      Signed-off-by: NYufang Zhang <yuzhang@redhat.com>
      a8891666
  7. 28 4月, 2011 9 次提交
    • L
      network: fix return value of hostsFileWrite · f7bd72fa
      Laine Stump 提交于
      The lone caller to hostsFileWrite (and the callers for at least 3
      levels up the return stack) assume that the return value will be < 0
      on failure. However, hostsFileWrite returns 0 on success, and a
      positive errno on failure. This patch changes hostsFileWrite to return
      -errno on failure.
      f7bd72fa
    • E
      maint: fix comment typos · a372c405
      Eric Blake 提交于
      * src/esx/esx_driver.c: Fix spelling of 'relative'.
      * src/util/util.c: Likewise.
      a372c405
    • J
      build: Use pkg-config for libssh2 check · 3a552132
      Jiri Denemark 提交于
      Currently the build fails if /usr/local/include does not exist since
      its use is hardcoded in configure.ac
      3a552132
    • J
      build: Ignore old audit library · 14c8dc84
      Jiri Denemark 提交于
      Check for audit_encode_nv_string in libaudit so that ancient audit
      library is ignored rather than trying to compile with libaudit support
      and failing.
      14c8dc84
    • O
      util: Initialize hooks at daemon shutdown if no hooks defined · 32398e12
      Osier Yang 提交于
      We support to initialize the hooks at daemon reload if there is no
      hooks script is defined, we should also support initialize the hooks
      at daemon shutdown if no hooks is defined.
      
      To address bz: https://bugzilla.redhat.com/show_bug.cgi?id=688859
      32398e12
    • W
      fix virsh's regression · 2225a491
      Wen Congyang 提交于
      This patch does the following things:
      1. The return value of cmdSchedInfoUpdate() can be -1, 0 and 1. So the
         type of return value should be int not bool.(This function is not a
         entry of a virsh command, but the name of this function likes cmdXXX)
      
      2. The type of cmdSchedinfo()'s, cmdFreecell()'s, cmdPoolList()'s and
         cmdVolList()'s return value is bool not int, so change the type of
         variable ret_val, func_ret and functionReturn.
      
      3. Add a variable functionReturn for cmdMigrate(), cmdAttachInterface(),
         cmdDetachInterface(), cmdAttachDisk() and cmdDetachDisk() to save the
         return value.
      
      4. Change the type of variable ret in the function cmdAttachDevice(),
         cmdDetachDevice(), cmdUpdateDevice(), cmdAttachInterface(),
         cmdDetachInterface(), cmdAttachDisk() and cmdDetachDisk() to int, as
         we use it to save the return value of virXXX() and the type of virXXX()'s
         return value is int not bool.
      
      5. Do some cleanup when virBuff.error is 1.
      
      The bug 1-4 were introduced by commit b56fa5bb.
      2225a491
    • K
      libvirt/qemu - support persistent attach/detach disks · ab9102c2
      KAMEZAWA Hiroyuki 提交于
      Support changes of disks by MODIFY_CONFIG for qemu.
      
      This patch includes patches for qemu's disk to support
      virDomainAt(De)tachDeviceFlags with VIR_DOMAIN_DEVICE_MODIFY_CONFIG.
      
      Other devices can be added incrementally.
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      
      * /src/conf/domain_conf.c
      (virDomainDiskIndexByName): returns array index of disk in vmdef.
      (virDomainDiskRemoveByName): removes a disk which has the name in vmdef.
      * src/qemu/qemu_driver.c
      (qemuDomainAttachDeviceConfig): add support for Disks.
      (qemuDomainDetachDeviceConfig): add support for Disks.
      ab9102c2
    • K
      libvirt/qemu - support persistent modification of devices · da1eba6b
      KAMEZAWA Hiroyuki 提交于
      This patch adds functions for modify domain's persistent definition.
      To do error recovery in easy way, we use a copy of vmdef and update it.
      
      The whole sequence will be:
      
        make a copy of domain definition.
      
        if (flags & MODIFY_CONFIG)
            update copied domain definition
        if (flags & MODIF_LIVE)
            do hotplug.
        if (no error)
            save copied one to the file and update cached definition.
        else
            discard copied definition.
      
      This patch is mixuture of Eric Blake's work and mine.
      From: Eric Blake <eblake@redhat.com>
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      
      (virDomainObjCopyPersistentDef): make a copy of persistent vm definition
      (qemuDomainAttach/Detach/UpdateDeviceConfig) : callbacks. now empty
      (qemuDomainModifyDeviceFlags): add support for MODIFY_CONFIG and MODIFY_CURRENT
      da1eba6b
    • E
      build: fix 32-bit test failure · 8a6e30f1
      Eric Blake 提交于
      Same fix as commit 1fc288e1.
      
      * tests/hashtest.c (testHashRemoveForEach): Use correct format.
      8a6e30f1
  8. 27 4月, 2011 1 次提交
    • J
      util: Simplify hash implementation · 1671d1dc
      Jiri Denemark 提交于
      So far first entries for each hash key are stored directly in the hash
      table while other entries mapped to the same key are linked through
      pointers. As a result of that, the code is cluttered with special
      handling for the first items.
      
      This patch makes all entries (even the first ones) linked through
      pointers, which significantly simplifies the code and makes it more
      maintainable.
      1671d1dc