1. 03 6月, 2015 3 次提交
    • P
      util: Add macro to overflow check integer assignments · 65c61e50
      Peter Krempa 提交于
      Add a macro that will allow to simplify overflow checks and make them
      more universal in case data types change.
      65c61e50
    • L
      network: validate DHCP ranges are completely within defined network · 1e334a0a
      Laine Stump 提交于
      virSocketAddrGetRange() has been updated to take the network address
      and prefix, and now checks that both the start and end of the range
      are within that network, thus validating that the entire range of
      addresses is in the network. For IPv4, it also checks that ranges to
      not start with the "network address" of the subnet, nor end with the
      broadcast address of the subnet (this check doesn't apply to IPv6,
      since IPv6 doesn't have a broadcast or network address)
      
      Negative tests have been added to the network update and socket tests
      to verify that bad ranges properly generate an error.
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=985653
      1e334a0a
    • L
      test: fix IP address range failure test · 48e8b95d
      Laine Stump 提交于
      This was revealed when I made a cut-paste mistake in an upgrade to
      virSocketAddrGetRange(), leading to failure to check for the end
      address being outside of the defined network, but a negative test case
      that should have caught the error instead returned success.
      
      The problem was that testRange in sockettest.c was written so that
      when it expected a failure, even an "unexpected success" would be
      considered as an "expected failure" because of the way the check in
      testRange was done. testRange had this:
      
       if (gotsize < 0 || gotsize != size) {
           return pass ? -1 : 0;
       } else {
           return pass ? 0 : -1;
       }
      
      but all the tests that expected a failure give "-1" as the expected
      size. So in a case where we expect a failure, we would have pass ==
      false and size == -1. If virSocketAddrGetRange() was incorrectly
      *successful* (returned some positive number), then "gotsize != size"
      would be, e.g. "276 != -1", so we would take the if clause and, since
      pass == false, we would return 0 (success i.e. expected failure).
      
      The solution is that in the case where we expect failure, we should
      just ignore size - virSocketAddrGetRange() must return -1 in order for
      us to report "expected failure == success".
      
      Part of fix for: https://bugzilla.redhat.com/show_bug.cgi?id=985653
      48e8b95d
  2. 02 6月, 2015 3 次提交
  3. 01 6月, 2015 2 次提交
  4. 27 5月, 2015 1 次提交
  5. 26 5月, 2015 2 次提交
    • C
      conf: storage: Don't emit empty <permissions> block · 42dd6a99
      Cole Robinson 提交于
      42dd6a99
    • C
      storage: conf: Don't set any default <mode> in the XML · 7c2d65dd
      Cole Robinson 提交于
      The XML parser sets a default <mode> if none is explicitly passed in.
      This is then used at pool/vol creation time, and unconditionally reported
      in the XML.
      
      The problem with this approach is that it's impossible for other code
      to determine if the user explicitly requested a storage mode. There
      are some cases where we want to make this distinction, but we currently
      can't.
      
      Handle <mode> parsing like we handle <owner>/<group>: if no value is
      passed in, set it to -1, and adjust the internal consumers to handle
      it.
      7c2d65dd
  6. 24 5月, 2015 1 次提交
  7. 22 5月, 2015 3 次提交
  8. 21 5月, 2015 3 次提交
  9. 19 5月, 2015 3 次提交
    • J
      xenconfig: fix spice mousemode and copypaste · a5b55bd9
      Jim Fehlig 提交于
      From xl.cfg950 man page:
      
      spiceagent_mouse=BOOLEAN
      Whether SPICE agent is used for client mouse mode. The default is
      true (1) (turn on)
      
      spicevdagent=BOOLEAN
      Enables spice vdagent. The Spice vdagent is an optional component for
      enhancing user experience and performing guest-oriented management
      tasks. Its features includes: client mouse mode (no need to grab
      mouse by client, no mouse lag), automatic adjustment of screen
      resolution, copy and paste (text and image) between client and domU.
      It also requires vdagent service installed on domU o.s. to work.
      The default is 0.
      
      spice_clipboard_sharing=BOOLEAN
      Enables Spice clipboard sharing (copy/paste). It requires spicevdagent
      enabled. The default is false (0).
      
      So if spiceagent_mouse is enabled (client mouse mode) or
      spice_clipboard_sharing is enabled, spicevdagent must be enabled.
      Along with this change, s/spicedvagent/spicevdagent, set
      spiceagent_mouse correctly, and add a test for these spice
      features.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      a5b55bd9
    • J
      xenconfig: fix spicepasswd handling · a460295f
      Jim Fehlig 提交于
      The logic related to spicedisable_ticketing and spicepasswd was
      inverted.  As per man xl.cfg(5), 'spicedisable_ticketing = 1'
      means no passwd is required.  On the other hand, a passwd is
      required if 'spicedisable_ticketing = 0'.  Fix the logic and
      produce and error if 'spicedisable_ticketing = 0' but spicepasswd
      is not provided.  Also fix the spice cfg test file.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      a460295f
    • J
      xenconfig: format spice listenAddr when formating ports · e21b1180
      Jim Fehlig 提交于
      Move formating of spice listenAddr to the section of code
      where spice ports are formatted.  It is more logical to
      format address and ports together.  Account for the change
      in spice cfg test file by moving 'spicehost'.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      e21b1180
  10. 18 5月, 2015 2 次提交
  11. 16 5月, 2015 3 次提交
    • L
      qemu: log error when domain has an unsupported IDE controller · eadd757c
      Laine Stump 提交于
      We have previously effectively ignored all <controller type='ide'>
      elements in a domain definition.
      
      On the i440fx-based machinetypes there is an IDE controller that is
      included in the chipset and can't be removed (which is the ide
      controller with index='0'>), so it makes sense to ignore that one
      controller. However, if an i440fx domain definition has a 2nd
      controller, nothing catches this error (unless you also have a disk
      attached to it, in which case qemu will complain that you're trying to
      use the ide controller named "ide1", which doesn't exist), and if any
      other type of domain has even a single controller defined, it will be
      incorrectly ignored.
      
      Ignoring a bogus controller definition isn't such a big problem, as
      long as an error is logged when any disk is attached to that
      non-existent controller. But in the case of q35-based machinetypes,
      the hardcoded id ("alias" in libvirt terms) of its builtin SATA
      controller is "ide", which happens to be the same id as the builtin
      IDE controller on i440fx machinetypes. So libvirt creates a
      commandline believing that it is connecting the disk to the builtin
      (but actually nonexistent) IDE controller, qemu thinks that libvirt
      wanted that disk connected to the builtin SATA controller, and
      everybody is happy.
      
      Until you try to connect a 2nd disk to the IDE controller. Then qemu
      will complain that you're trying to set unit=1 on a controller that
      requires unit=0 (SATA controllers are organized differently than IDE
      controllers).
      
      After this patch, if a domain has an IDE controller defined for a
      machinetype that has no IDE controllers, libvirt will log an error
      about the controller itself as it is building the qemu commandline
      (rather than a (possible) error from qemu about disks attached to that
      controller). This is done by adding IDE to the list of controller
      types that are handled in the loop that creates controller command
      strings in qemuBuildCommandline() (previously it would *always* skip
      IDE controllers). Then qemuBuildControllerDevStr() is modified to log
      an appropriate error in the case of IDE controllers.
      
      In the future, if we add support for extra IDE controllers (piix3-ide
      and/or piix4-ide) we can just add it into the IDE case in
      qemuBuildControllerDevStr(). For now, nobody seems anxious to add
      extra support for an aging and very slow controller, when there are so
      many better options available.
      
      Resolves:
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1176071 (Fedora)
      eadd757c
    • L
      qemu: remove test for allowing ide controller in s390, rename usb tests · 548ba430
      Laine Stump 提交于
      Back in 2013, commit 877bc089 added in some tests that made sure no
      error was generated on a domain definition that had an automatically
      added usb controller if that domain didn't have a PCI bus to attach
      the usb controller to. This was done because, at that time, libvirt
      was automatically adding a usb controller to *any* domain definition
      that didn't have one.  Along with permitting the controller, two
      s390-specific tests were added to ensure this behavior was maintained
      - one with <controller type='usb' model='none'/> and another (called
      "s390-piix-controllers") that had both usb and ide controllers, but
      nothing attached to them.
      
      Then in February of this year, commit 09ab9dcc eliminated the annoying
      auto-adding of a usb device for s390 and s390x machines, stating:
      
       "Since s390 does not support usb the default creation of a usb
        controller for a domain should not occur."
      
      Although, as verified here, the s390 doesn't support usb, and usb
      controllers aren't currently added to s390 domain definitions
      automatically, there are likely still some domain definitions in the
      wild that have a usb controller (which was added *by libvirt*, not by
      the user), so we will keep the tests verifying that behavior for
      now. But this patch changes the names of the tests to reflect that
      they don't actually contain a valid s390 config; this way future
      developers won't propagate the incorrect idea that an s390 virtual
      machine can have a USB (or IDE) bus.
      
      In the case of the IDE controller, though, libvirt has never
      automatically added an IDE controller unless a user added an IDE disk
      (which itself would have caused an error), and we specifically *do*
      want to begin generating an error when someone tries to add an IDE
      controller to a domain that can't support one. For that reason, while
      renaming the sz390-piix-controllers patch, this patch removes the
      <controller type='ide'...> from it (otherwise the upcoming patch would
      break make check)
      548ba430
    • L
      qemu: use controller alias when constructing device/controller args · 0260506c
      Laine Stump 提交于
      This makes sure that that the commandlines generated for devices and
      controller devices are all using the alias that has been set in the
      controller's object as the id of the controller, rather than
      hardcoding a printf (or worse, encoding exceptions to the standard
      ${controller}${index} into the logic)
      
      Since this "fixes" the controller name used for the sata controller,
      the commandline arg for the sata controller in the sata test case had
      to be adjusted to be "sata0" instead of "ahci0". All other tests
      remain unchanged, verifying that the patch causes no other functional
      change.
      
      Because the function that finds a controller alias based on a device
      def requires a pointer to the full domainDef in order to get the list
      of controllers, the arglist of a few functions had to have this added.
      0260506c
  12. 14 5月, 2015 1 次提交
  13. 12 5月, 2015 1 次提交
    • R
      bhyve: fix bhyvexml2argvtest build with gcc · 846cc14c
      Roman Bogorodskiy 提交于
      gcc5 reports an error like this:
      
      bhyvexml2argvtest.c: In function 'testCompareXMLToArgvFiles':
      bhyvexml2argvtest.c:24:18: error: variable 'vm' set but not used
      [-Werror=unused-but-set-variable]
           virDomainObj vm;
                        ^
      cc1: all warnings being treated as errors
      
      Fix by dropping this variable.
      846cc14c
  14. 08 5月, 2015 1 次提交
    • C
      caps: Fix regression defaulting to host arch · 8910e063
      Cole Robinson 提交于
      My commit 747761a7 (v1.2.15 only) dropped this bit of logic when filling
      in a default arch in the XML:
      
      -    /* First try to find one matching host arch */
      -    for (i = 0; i < caps->nguests; i++) {
      -        if (caps->guests[i]->ostype == ostype) {
      -            for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
      -                if (caps->guests[i]->arch.domains[j]->type == domain &&
      -                    caps->guests[i]->arch.id == caps->host.arch)
      -                    return caps->guests[i]->arch.id;
      -            }
      -        }
      -    }
      
      That attempt to match host.arch is important, otherwise we end up
      defaulting to i686 on x86_64 host for KVM, which is not intended.
      Duplicate it in the centralized CapsLookup function.
      
      Additionally add some testcases that would have caught this.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1219191
      8910e063
  15. 07 5月, 2015 1 次提交
    • C
      tests: Remove redundant aarch64 tests · fd74e231
      Cole Robinson 提交于
      My commit 7b9de914 added some aarch64 CPU test cases. I wanted to test
      two different code paths but inadvertently added two of the same test
      cases.
      
      The second code path (using <cpu><model>host</model</cpu>) isn't easily
      exercised via the qemu tests anyways, I'll need to look elsewhere.
      
      Regardless, remove the redundant tests for now
      fd74e231
  16. 05 5月, 2015 1 次提交
  17. 04 5月, 2015 2 次提交
  18. 30 4月, 2015 2 次提交
  19. 29 4月, 2015 1 次提交
    • C
      domain: conf: Drop unused OSTYPE_AIX · 066f7c7c
      Cole Robinson 提交于
      The phyp driver stuffed it into a DomainDefPtr during its attachdevice
      routine, but the value is never advertised via capabilities so it should
      be safe to drop.
      
      Have the phyp driver use OSTYPE_LINUX, which is what it advertises via
      capabilities.
      066f7c7c
  20. 28 4月, 2015 4 次提交