1. 11 8月, 2011 5 次提交
    • L
      docs: use IPv6 addresses in range reserved for documentation · e6d5d610
      Laine Stump 提交于
      Someone in an IRC channel or an email pointed out a few days ago that
      the examples of IPv6 addresses in the libvirt documentation were not
      in the officially reserved "documentation" range. This addresses their
      concern.
      e6d5d610
    • E
      virsh: add virsh snapshot-current --name · 23b4a3f9
      Eric Blake 提交于
      Sometimes, full XML is too much; since most snapshot commands
      operate on a snapshot name, there should be an easy way to get
      at the current snapshot's name.  For example:
      
      virsh snapshot-revert dom `virsh snapshot-current dom --name`
      
      * tools/virsh.c (cmdSnapshotCurrent): Add an option.
      * tools/virsh.pod (snapshot-current): Document it.
      23b4a3f9
    • E
      virsh: fix snapshot-create-as to handle arbitrary names · 69278878
      Eric Blake 提交于
      Found this working on the next patch to use xpath to parse
      arbitrary names back out.
      
      * tools/virsh.c (cmdSnapshotCreateAs): Escape user input.
      69278878
    • E
      managedsave: prohibit use on transient domains · 0de75e85
      Eric Blake 提交于
      Transient domains reject attempts to set autostart, and using
      virDomainCreate to restart a domain only works on persistent
      domains.  Therefore, managed save makes no sense on transient
      domains, and should be rejected up front rather than creating
      an otherwise unrecoverable managed save file.
      
      Besides, transient domains imply that a lot more management is
      being done by the upper layer; this includes the assumption
      that the upper layer is okay managing the saved state file
      created by virDomainSave, and does not need to use managed save.
      
      * src/libvirt.c: Document that transient domains are incompatible
      with managed save.
      * src/qemu/qemu_driver.c (qemuDomainManagedSave): Enforce it.
      * src/libxl/libxl_driver.c (libxlDomainManagedSave): Likewise.
      0de75e85
    • L
      docs: describe new virtual switch configuration in network XML docs · 073ef15c
      Laine Stump 提交于
      This should have been done with the rest of the patch for virtual
      switch / network device abstraction. If documents the new elements
      (and new usage of existing elements) in the <network> XML to support
      libvirt networks that use existing host bridges and macvtap direct
      connections, as well as the new <portgroup> element.
      073ef15c
  2. 10 8月, 2011 3 次提交
  3. 08 8月, 2011 5 次提交
    • E
      build: fix regression in large file support · e6cdb431
      Eric Blake 提交于
      * .gnulib: Update to latest, for largefile fix.
      e6cdb431
    • D
      Allow use of file images for LXC container filesystems · 5f5c6fde
      Daniel P. Berrange 提交于
      A previous commit gave the LXC driver the ability to mount
      block devices for the container filesystem. Through use of
      the loopback device functionality, we can build on this to
      support use of plain file images for LXC filesytems.
      
      By setting the LO_FLAGS_AUTOCLEAR flag we can ensure that
      the loop device automatically disappears when the container
      dies / shuts down
      
      * src/lxc/lxc_container.c: Raise error if we see a file
        based filesystem, since it should have been turned into
        a loopback device already
      * src/lxc/lxc_controller.c: Rewrite any filesystems of
        type=file, into type=block, by binding the file image
        to a free loop device
      5f5c6fde
    • D
      Fix typo in LXC cgroups setup error message · 8c7477c4
      Daniel P. Berrange 提交于
      * src/lxc/lxc_controller.c: s/PYT/PTY/
      8c7477c4
    • D
      Allow use of block devices for guest filesystem · 77791dc0
      Daniel P. Berrange 提交于
      Currently the LXC driver can only populate filesystems from
      host filesystems, using bind mounts. This patch allows host
      block devices to be mounted. It autodetects the filesystem
      format at mount time, and adds the block device to the cgroups
      ACL. Example usage is
      
          <filesystem type='block' accessmode='passthrough'>
            <source dev='/dev/sda1'/>
            <target dir='/home'/>
          </filesystem>
      
      * src/lxc/lxc_container.c: Mount block device filesystems
      * src/lxc/lxc_controller.c: Add block device filesystems
        to cgroups ACL
      77791dc0
    • D
      Don't mount /dev for application containers · b6bd2d34
      Daniel P. Berrange 提交于
      An application container shouldn't get a private /dev. Fix
      the regression from 6d37888e
      
      * src/lxc/lxc_container.c: Don't mount /dev for app containers
      b6bd2d34
  4. 06 8月, 2011 1 次提交
  5. 05 8月, 2011 2 次提交
    • E
      qemu: avoid crash on process attach · 5ef1b6c5
      Eric Blake 提交于
      Detected by ccc-analyzer, reported by Alex Jia.
      
      qemuProcessStart always calls qemuProcessWaitForMonitor with a
      non-negative position, but qemuProcessAttach always calls with -1.
      In the latter case, there is no log file we can scrape, so we
      also should not be trying to scrape the logs if the qemu process
      died at the very end.
      
      * src/qemu/qemu_process.c (qemuProcessWaitForMonitor): Don't try
      to read from log in qemuProcessAttach case.
      5ef1b6c5
    • L
      network: eliminate lag in updating dnsmasq hosts files · 3aa84653
      Laine Stump 提交于
      This addresses https://bugzilla.redhat.com/show_bug.cgi?id=713728
      
      When "defining" a new network (or one that exists but isn't currently
      active) the new definition is stored in network->def, but for a
      network that already exists and is active, the new definition is
      stored in network->newDef, and then moved over to network->def as soon
      as the network is destroyed.
      
      However, the code that writes the dhcp and dns hosts files used by
      dnsmasq was always using network->def for its information, even when
      the new data was actually in network->newDef, so the hosts files
      always lagged one edit behind the definition.
      
      This patch changes the code to keep the pointer to the new definition
      after it's been assigned into the network, and use it directly
      (regardless of whether it's stored in network->newDef or network->def)
      to construct the hosts files.
      3aa84653
  6. 04 8月, 2011 6 次提交
    • A
      qemu: avoid dead store in qemuMonitorTextBlockJob · 2c4d7b5f
      Alex Jia 提交于
      Value stored to 'ret' is never read, so remove this dead assignment.
      
      * src/qemu/qemu_monitor_text.c: kill dead assignment.
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      2c4d7b5f
    • A
      qemu: avoid dead store in qemuProcessStart · 22804479
      Alex Jia 提交于
      Value stored to 'ret' is never read, in fact, 'cleanup' section will
      directly return -1 when function is fail, so remove this dead assignment.
      
      * src/qemu/qemu_process.c: kill dead assignment.
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      22804479
    • G
      rpc:fix sasl session relocking intead of unlocking it · 8329c56e
      Guannan Ren 提交于
      When trying to use any SASL authentication for TCP sockets by
      setting auth_tls = "sasl" in libvirtd.conf on server side, the
      client will hang because of the sasl session relocking other than
      dropping the lock when exiting virNetSASLSessionExtKeySize()
      * src/rpc/virnetsaslcontext.c: virNetSASLSessionExtKeySize drop the
        lock on exit
      8329c56e
    • O
      daemon: Unlink unix socket paths on shutdown · ae0dcbc4
      Osier Yang 提交于
      This patch introduces a internal RPC API "virNetServerClose", which
      is standalone with "virNetServerFree".  it closes all the socket fds,
      and unlinks the unix socket paths, regardless of whether the socket
      is still referenced or not.
      
      This is to address regression bug:
      https://bugzilla.redhat.com/show_bug.cgi?id=725702
      ae0dcbc4
    • E
      build: update to latest gnulib · 02eab9ce
      Eric Blake 提交于
      I noticed that with 0.9.4, gnulib ended up replacing pthread_sigmask
      on glibc, even though glibc's works perfectly fine.  It turns out
      to have been an upstream gnulib bug.
      
      * .gnulib: Update to latest, for pthread_sigmask fix.
      02eab9ce
    • M
      Fix detection of GnuTLS 1.x.y · 099d30a8
      Matthias Bolte 提交于
      Detection based on gnutls_session doesn't work because GnuTLS 2.x.y
      comes with a compat.h that defines gnutls_session to gnutls_session_t.
      
      Instead detect this based on LIBGNUTLS_VERSION_MAJOR. Move this from
      configure/config.h to gnutls_1_0_compat.h and make sure that all users
      include gnutls_1_0_compat.h properly.
      
      Also fix header guard in gnutls_1_0_compat.h.
      099d30a8
  7. 03 8月, 2011 18 次提交
    • D
      Release of libvirt-0.9.4 · 14c2ca3d
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in: updates for new
        release
      * po/*.po*: pulled translations from the transifex teams and regenerated
        localizations
      14c2ca3d
    • E
      qemu: silence coverity false positives · f768b4c3
      Eric Blake 提交于
      Coverity gets confused by our logic.  Add some hints to silence
      false positives.
      
      * src/qemu/qemu_driver.c (qemudDomainGetVcpuPinInfo): Add hint.
      (qemuDomainGetMemoryParameters): Likewise.
      f768b4c3
    • E
      util: plug memory leak · c86827a2
      Eric Blake 提交于
      Leak detected by Coverity; only possible on unlikely ptsname_r
      failure.  Additionally, the man page for ptsname_r states that
      failure is merely non-zero, not necessarily -1.
      
      * src/util/util.c (virFileOpenTtyAt): Avoid leak on ptsname_r
      failure.
      c86827a2
    • E
      interface: drop dead code · d69b79ab
      Eric Blake 提交于
      Coverity detected that ifaceGetNthParent had already dereferenced
      'nth' prior to the conditional; all callers already complied with
      passing a non-NULL pointer so make this part of the contract.
      
      * src/util/interface.h (ifaceGetNthParent): Add annotations.
      * src/util/interface.c (ifaceGetNthParent): Drop useless null check.
      d69b79ab
    • E
      rpc: silence coverity false positives · 0634b623
      Eric Blake 提交于
      In virNetServerNew, Coverity didn't realize that srv->mdsnGroupName
      can only be non-NULL if mdsnGroupName was non-NULL.
      
      In virNetServerRun, Coverity didn't realize that the array is non-NULL
      if the array count is non-zero.
      
      * src/rpc/virnetserver.c (virNetServerNew): Use alternate pointer.
      (virNetServerRun): Give coverity a hint.
      0634b623
    • E
      rpc: avoid null deref · 8d0be8fd
      Eric Blake 提交于
      Detected by Coverity.
      
      * src/rpc/virnetserverclient.c (virNetServerClientDispatchRead):
      Avoid null deref on OOM.
      8d0be8fd
    • E
      build: silence coverity false positives · 44ebb18e
      Eric Blake 提交于
      Coverity complained that 395 out of 409 virAsprintf calls are
      checked, and therefore assumed that the remaining cases are bugs
      waiting to happen.  But in each of these cases, a failed virAsprintf
      will properly set the target string to NULL, and pass on that
      failure to the caller, without wasting efforts to check the call.
      Adding the ignore_value silences Coverity.
      
      * src/conf/domain_audit.c (virDomainAuditGetRdev): Ignore
      virAsprintf return value, when it behaves like we need.
      * src/network/bridge_driver.c (networkDnsmasqLeaseFileNameDefault)
      (networkRadvdConfigFileName, networkBridgeDummyNicName)
      (networkRadvdPidfileBasename): Likewise.
      * src/util/storage_file.c (absolutePathFromBaseFile): Likewise.
      * src/openvz/openvz_driver.c (openvzGenerateContainerVethName):
      Likewise.
      * src/util/command.c (virCommandTranslateStatus): Likewise.
      44ebb18e
    • E
      qemu: avoid memory leaks · 2ea9409a
      Eric Blake 提交于
      Quite a few leaks detected by coverity.  For chr, the leaks were
      close enough to the allocations to plug in place; for disk, the
      leaks were separated from the allocation by enough other lines with
      intermediate failure cases that I refactored the cleanup instead.
      
      * src/qemu/qemu_command.c (qemuParseCommandLine): Plug leaks.
      2ea9409a
    • E
      qemu: plug child process leak on domain core dump · 0c1813f4
      Eric Blake 提交于
      Detected by Coverity.  Leak introduced by typo in commit 58e668d2.
      
      * src/qemu/qemu_driver.c (doCoreDump): Use correct function.
      0c1813f4
    • E
      qemu: remove dead code · 9a87657a
      Eric Blake 提交于
      Warning detected by Coverity.  No need for the NULL check, and
      removing it silences the warning without any semantic change.
      
      * src/qemu/qemu_migration.c (qemuMigrationFinish): All entries to
      endjob had non-NULL vm.
      9a87657a
    • E
      conf: avoid memory leak on disk operations · 57ec8ced
      Eric Blake 提交于
      Detected by Coverity.  Leak on meta introduced in commit 85aa40e2.
      
      * src/conf/domain_conf.c (virDomainDiskDefForeachPath): Plug leak.
      57ec8ced
    • E
      rpc: avoid crash on error · ed246fbb
      Eric Blake 提交于
      Detected by Coverity.  Freeing the wrong variable results in both
      a memory leak and the likelihood of the caller dereferencing through
      a freed pointer.
      
      * src/rpc/virnettlscontext.c (virNetTLSSessionNew): Free correct
      variable.
      ed246fbb
    • E
      qemu: avoid null deref on block pull error · 9160573d
      Eric Blake 提交于
      Coverity detected that 5 of 6 callers of virJSONValueArrayGet checked
      for a NULL return; and that by not checking we risk a null deref
      during an error.  The error is unlikely since the prior call to
      virJSONValueArraySize would probably have already caught any botched
      JSON array parse, but better safe than sorry.
      
      * src/qemu/qemu_monitor_json.c (qemuMonitorJSONGetBlockJobInfo):
      Check for NULL.
      (qemuMonitorJSONExtractPtyPaths): Fix typo.
      9160573d
    • E
      rpc: correctly process sasl whitelist globs · 94b5dae4
      Eric Blake 提交于
      Detected by Coverity.  We want to compare the result of fnmatch 'rv',
      not our pre-set return value 'ret'.
      
      * src/rpc/virnetsaslcontext.c (virNetSASLContextCheckIdentity):
      Check correct variable.
      94b5dae4
    • E
      build: allow caching the input to STATIC_ANALYSIS · e4047f0a
      Eric Blake 提交于
      Right now, every re-run of configure re-evaluates whether a
      static analysis tool is in use.  But if you run configure under
      coverity, make a tweak, and then do an incremental rebuild with
      gcc but not coverity to test the tweak, then rerun a build under
      coverity, then configure does not get rerun, and static analysis
      ends up with lots of false positives.
      
      This patch caches the static analysis result, and also makes it
      easier to force static analysis even if the existing checks are
      insufficient to detect newer versions of the static analyzer tools.
      
      * configure.ac (lv_cv_static_analysis): New cache variable.
      e4047f0a
    • E
      fdstream: drop delete argument · 00ef048f
      Eric Blake 提交于
      Revert 6a1f5f56.  Now that libvirt_iohelper takes fds by
      inheritance rather than by open() (commit 1eb66479), there is
      no longer a race where the parent can unlink() a file prior to
      the iohelper open()ing the same file.  From there, it makes
      more sense to have the callers both create and unlink, rather
      than the caller create and the stream unlink, since the latter
      was only needed when iohelper had to do the unlink.
      
      * src/fdstream.h (virFDStreamOpenFile, virFDStreamCreateFile):
      Callers are responsible for deletion.
      * src/fdstream.c (virFDStreamOpenFileInternal): Don't leak created
      file on failure.
      (virFDStreamOpenFile, virFDStreamCreateFile): Drop parameter.
      * src/lxc/lxc_driver.c (lxcDomainOpenConsole): Update callers.
      * src/qemu/qemu_driver.c (qemuDomainScreenshot)
      (qemuDomainOpenConsole): Likewise.
      * src/storage/storage_driver.c (storageVolumeDownload)
      (storageVolumeUpload): Likewise.
      * src/uml/uml_driver.c (umlDomainOpenConsole): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainScreenshot): Likewise.
      * src/xen/xen_driver.c (xenUnifiedDomainOpenConsole): Likewise.
      00ef048f
    • E
      screenshot: don't unlink bogus file · 440d6b6a
      Eric Blake 提交于
      The previous qemu patch could end up calling unlink(tmp) before
      tmp was the name of a valid file (unlinking a fileXXXXXX template
      instead), or calling unlink(tmp) twice on success (once here,
      and once at the end of the stream).  Meanwhile, vbox also suffered
      from the same leaked tmp file bug.
      
      * src/qemu/qemu_driver.c (qemuDomainScreenshot): Don't unlink on
      success, or on invalid name.
      * src/vbox/vbox_tmpl.c (vboxDomainScreenshot): Don't leak temp file.
      440d6b6a
    • E
      python: avoid unlikely sign extension bug · 69154397
      Eric Blake 提交于
      Detected by Coverity; same analysis as for commit f73198df.
      
      * python/libvirt-override.c (libvirt_virDomainGetVcpuPinInfo): Use
      correct type.
      69154397