1. 07 5月, 2011 8 次提交
  2. 06 5月, 2011 12 次提交
    • M
      Add warning message to XML definition files stored on disk · 5d09c314
      Michal Privoznik 提交于
      Users often edit XML file stored in configuration directory
      thinking of modifying a domain/network/pool/etc. Thus it is wise
      to let them know they are using the wrong way and give them hint.
      5d09c314
    • D
      Fix security driver handling of FIFOs with QEMU · d37c6a3a
      Daniel P. Berrange 提交于
      When setting up a FIFO for QEMU, it allows either a pair
      of fifos used unidirectionally, or a single fifo used
      bidirectionally. Look for the bidirectional fifo first
      when labelling since that is more useful
      
      * src/security/security_dac.c,
        src/security/security_selinux.c: Fix fifo handling
      d37c6a3a
    • D
      Make taint warnings also go into the domain logfile · f79cddad
      Daniel P. Berrange 提交于
      As well as taint warnings going to the main libvirt log,
      add taint warnings to the per-domain logfile
      
        Domain id=3 is tainted: high-privileges
        Domain id=3 is tainted: disk-probing
        Domain id=3 is tainted: shell-scripts
        Domain id=3 is tainted: custom-monitor
      
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Enhance
        qemuDomainTaint to also log to the domain logfile
      * src/qemu/qemu_driver.c: Pass -1 for logFD to taint methods to
        auto-append to logfile
      * src/qemu/qemu_process.c: Pass open logFD at startup for taint
        methods
      f79cddad
    • D
      Add a qemuDomainAppendLog method for writing to the domain logfile · 1f1db0b5
      Daniel P. Berrange 提交于
      The qemuDomainAppendLog method allows writing a formatted string
      to the end of the domain logfile, optionally opening it if needed.
      
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Add
        qemuDomainAppendLog
      1f1db0b5
    • D
      Move qemuProcessLogReadFD and qemuProcessLogFD methods · ce1b1f41
      Daniel P. Berrange 提交于
      Move the qemuProcessLogReadFD and qemuProcessLogFD methods
      into qemu_domain.c, renaming them to qemuDomainCreateLog
      and qemuDomainOpenLog.
      
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Add
        qemuDomainCreateLog and qemuDomainOpenLog.
      * src/qemu/qemu_process.c: Remove qemuProcessLogFD
        and qemuProcessLogReadFD
      ce1b1f41
    • D
      Log taint warnings in QEMU driver · 718ac9b5
      Daniel P. Berrange 提交于
      Wire up logging of VM tainting to the QEMU driver
      
       - If running QEMU as root user/group or without capabilities
         being cleared
       - If passing custom QEMU command line args
       - If issuing custom QEMU monitor commands
       - If using a network interface config with an associated
         shell script
       - If using a disk config relying on format probing
      
      The warnings, per-VM appear in the main libvirtd logs
      
        11:56:17.571: 10832: warning : qemuDomainObjTaint:712 : Domain id=1 name='l2' uuid=c7a3edbd-edaf-9455-926a-d65c16db1802 is tainted: high-privileges
        11:56:17.571: 10832: warning : qemuDomainObjTaint:712 : Domain id=1 name='l2' uuid=c7a3edbd-edaf-9455-926a-d65c16db1802 is tainted: disk-probing
      
      The taint flags are reset when the VM is stopped.
      
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Helper APIs
        for logging taint warnings
      * src/qemu/qemu_driver.c: Log tainting with custom QEMU monitor
        commands and disk/net hotplug with unsupported configs
      * src/qemu/qemu_process.c: Log tainting at startup based on
        unsupported configs
      718ac9b5
    • D
      Add field to virDomainObjPtr to track "tainting" · 79984650
      Daniel P. Berrange 提交于
      Some configuration setups for guests are allowed, but strongly
      discouraged and unsupportable in production systems. Introduce
      a concept of 'tainting' to virDomainObjPtr to allow such setups
      to be identified. Drivers can then log warnings at suitable
      times
      
      * src/conf/domain_conf.c, src/conf/domain_conf.h: Declare taint
        flags and add parsing/formatting of domain status XML
      79984650
    • D
      virsh: improve TLS certificate error messages · 1945d74c
      Doug Goldstein 提交于
      Print the name of the CA cert, certificate, and key file that resulted
      in the failure so that the user has an idea what to troubleshoot.
      Signed-off-by: NDoug Goldstein <cardoe@gentoo.org>
      1945d74c
    • E
      virsh: use new method for easier log to file · f99e1389
      Eric Blake 提交于
      Easier to maintain, and no longer an arbitrary line length limit.
      
      * tools/virsh.c (vshOutputLogFile): Replace snprintf with
      virBuffer.
      f99e1389
    • E
      buf: add virBufferVasprintf · f09acccf
      Eric Blake 提交于
      Match the fact that we have virAsprintf and virVasprintf.
      
      * src/util/buf.h (virBufferVasprintf): New prototype.
      * src/util/buf.c (virBufferAsprintf): Move guts...
      (virBufferVasprintf): ...to new function.
      * src/libvirt_private.syms (buf.h): Export it.
      * bootstrap.conf (gnulib_modules): Add stdarg, for va_copy.
      f09acccf
    • E
      maint: rename virBufferVSprintf to virBufferAsprintf · 68ea80cf
      Eric Blake 提交于
      We already have virAsprintf, so picking a similar name helps for
      seeing a similar purpose.  Furthermore, the prefix V before printf
      generally implies 'va_list', even though this variant was '...', and
      the old name got in the way of adding a new va_list version.
      
      global rename performed with:
      
      $ git grep -l virBufferVSprintf \
        | xargs -L1 sed -i 's/virBufferVSprintf/virBufferAsprintf/g'
      
      then revert the changes in ChangeLog-old.
      68ea80cf
    • C
      docs: <filesystem> attr is 'accessmode', not 'mode' · 79b914e8
      Cole Robinson 提交于
      79b914e8
  3. 05 5月, 2011 11 次提交
    • D
      Fix qemuMigrationToFile nonull annotation · f7fc885d
      Daniel P. Berrange 提交于
      The qemuMigrationToFile method was accidentally annotated for
      the 'compressor' parameter to be non-null, instead of the
      'path' parameter. Thus GCC with -O2, unhelpfully deleted the
      entire 'if (compressor == NULL)' block of code during
      optimization. Thus NULL was passed to virCommandNew() with
      predictably bad results.
      
      * src/qemu/qemu_migration.h: Fix non-null annotation to be
        against path instead of compressor
      f7fc885d
    • D
      Make QEMU migration use cached qemu capabilities data · 7c31e1ef
      Daniel P. Berrange 提交于
      * src/qemu/qemu_migration.c, src/qemu/qemu_migration.h: Remove
        qemuCaps parameters & use cached data
      * src/qemu/qemu_driver.c: Don't create & pass qemuCaps to
        migration methods
      7c31e1ef
    • D
      Make QEMU hotplug use cached qemu capabilities data · a623bff4
      Daniel P. Berrange 提交于
      * src/qemu/qemu_hotplug.h, src/qemu/qemu_hotplug.c: Remove
        qemuCaps parameters from all methods
      * src/qemu/qemu_driver.c: Don't create & pass qemuCaps to
        hotplug methods
      a623bff4
    • D
      Persist qemu capabilities in the domain status file · 43c01d38
      Daniel P. Berrange 提交于
      To cope with the QEMU binary being changed while a VM is running,
      it is neccessary to persist the original qemu capabilities at the
      time the VM is booted.
      
      * src/qemu/qemu_capabilities.c, src/qemu/qemu_capabilities.h: Add
        an enum for a string rep of every capability
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Support for
        storing capabilities in the domain status XML
      * src/qemu/qemu_process.c: Populate & free QEMU capabilities at
        domain startup
      43c01d38
    • D
      Release of libvirt-0.9.1 · 9b889aac
      Daniel Veillard 提交于
      * configure.ac libvirt.spec.in docs/news.html.in: update and document
        the release
      * po/*.po*: update localizations for german, polish, spanish, ukrainian
        and vietnamese coming from transifex, regenerate
      9b889aac
    • E
      maint: detect clang 2.9 · 2ffa8b34
      Eric Blake 提交于
      In Fedora 15, with clang 2.8, 'scan-build env' shows:
      CCC_ANALYZER_ANALYSIS=-analyzer-check-objc-mem -analyzer-check-security-syntactic -analyzer-check-dead-stores -analyzer-check-objc-unused-ivars -analyzer-check-objc-methodsigs
      
      But in rawhide, with clang 2.9, the same variable is set but
      empty, implying the default set of analysis.  We still want
      sa_assert defined in that case, to stop clang from hitting
      false positives.
      
      * configure.ac (STATIC_ANALYSIS): Detect clang even when the set
      of analyses is the default.
      2ffa8b34
    • E
      storage: avoid null deref and leak on failure · 4644f0b2
      Eric Blake 提交于
      Detected by clang.  NULL deref added in commit 343a27af (Mar 11),
      but leak of voldef present since commit 2cd9b2d8 (Apr 09).
      
      * src/storage/storage_driver.c (storageVolumeCreateXML): Don't
      leak voldef or dereference null volobj.
      4644f0b2
    • M
      esx: Disable performance counter queries in esxDomainGetInfo · 6eb3a1f4
      Matthias Bolte 提交于
      The queried values aren't used yet.
      6eb3a1f4
    • M
      esx: Avoid null dereference on error in esxDomainGetInfo · 62a6b7cc
      Matthias Bolte 提交于
      Add missing early exits and convert error logging to proper API level
      error reporting.
      
      Centralize cleanup code for the PerfQuerySpec object.
      
      Reported by Eric Blake, detected by clang.
      62a6b7cc
    • E
      remote: avoid null dereference on error · 85cb2926
      Eric Blake 提交于
      Clang found three instances of uninitialized use of nparams in
      the cleanup path.  Unfortunately, one is a false positive: clang
      couldn't see that ret->params.params_val is guaranteed to be
      NULL unless allocated within a function, and that nparams is
      guaranteed to be assigned prior to the allocation; hoisting the
      assignment to nparams to be earlier in the function shuts up
      that false positive.  But two of the reports also happened to
      highlight a real bug - the error path can dereference NULL.
      
      Regression introduced in commit 158ba873.
      
      * daemon/remote.c (remoteDispatchDomainGetMemoryParameters)
      (remoteDispatchDomainGetBlkioParameters): Don't clear fields if
      array was not allocated.
      (remoteDispatchDomainGetSchedulerParameters): Initialize nparams
      earlier.
      85cb2926
    • M
      esx: Remove dead store in esxUtil_ParseDatastorePath · d0a8f99c
      Matthias Bolte 提交于
      The ++ on preliminaryFileName was a left over from a previous version
      of this function that explicitly returned the filename and did a strdup
      on preliminaryFileName afterwards.
      
      As the filename isn't returned explicitly anymore remove the preliminary
      variable for it and reuse the tmp variable instead.
      
      Reported by Eric Blake, detected by clang.
      d0a8f99c
  4. 04 5月, 2011 9 次提交
    • E
      qemu: update qemuCgroupControllerActive signature · 29e131de
      Eric Blake 提交于
      Clang warned about a dead assignment.  In the process, I noticed
      that we are only using the function for a bool value.  I audited
      all other callers in qemu_{migration,cgroup,driver,hotplug), and
      all were making the call in a bool context.
      
      Also, do bounds checking on the argument.
      
      * src/qemu/qemu_cgroup.c (qemuSetupCgroup): Delete dead
      assignment.
      (qemuCgroupControllerActive): Change return type to bool.
      * src/qemu/qemu_cgroup.h (qemuCgroupControllerActive): Likewise.
      29e131de
    • E
      util: remove dead assignment · 44aa49ae
      Eric Blake 提交于
      Clang complained about this, and it was easy enough to fix.
      
      * src/util/util.c (virFileOpenAs): Drop dead assignment.
      44aa49ae
    • E
      lxc: report correct error · 32388f12
      Eric Blake 提交于
      Clang noticed a dead assignment, which turned out to be the use
      of the wrong variable.  rc starts life as -1, and is only ever
      assigned to 0 just before a successful cleanup.
      
      * src/lxc/lxc_driver.c (lxcSetupInterfaces): Don't call
      virReportSystemError(-1).
      32388f12
    • E
      libxl: avoid compiler warning · 710f8811
      Eric Blake 提交于
      Detected by gcc:
      
      libxl/libxl_driver.c: In function 'libxlDomainDestroy':
      libxl/libxl_drier.c:1351:30: error: variable 'priv' set but not used [-Werror=unused-but-set-variable]
      
      * src/libxl/libxl_driver.c (libxlDomainDestroy): Delete unused
      variable.
      710f8811
    • 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