- 15 10月, 2013 1 次提交
-
-
由 Eric Blake 提交于
virDomainChrGetDomainPtrs() required 4 levels of pointers (taking a parameter that will be used as an output variable to return the address of another variable that contains an array of pointers). This is rather complex to reason about, especially when outside of the domain_conf file, no other caller should be modifying the resulting array of pointers directly. Changing the public signature gives something is easier to reason with, and actually make const-correct; which is important as it was the only function that was blocking virDomainDeviceDefCopy from treating its source as const. * src/conf/domain_conf.h (virDomainChrGetDomainPtrs): Use simpler types, and make const-correct for external users. * src/conf/domain_conf.c (virDomainChrGetDomainPtrs): Split... (virDomainChrGetDomainPtrsInternal): ...into an internal version that lets us modify terms, vs. external form that is read-only. (virDomainDeviceDefPostParseInternal, virDomainChrFind) (virDomainChrInsert): Adjust callers. * src/qemu/qemu_command.c (qemuGetNextChrDevIndex): Adjust caller. (qemuDomainDeviceAliasIndex): Make const-correct. Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 09 10月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
Since 76b644c3 when the support for RAM filesystems was introduced, libvirt accepted the following XML: <source usage='1024' unit='KiB'/> This was parsed correctly and internally stored in bytes, but it was formatted as (with an extra 's'): <source usage='1024' units='KiB'/> When read again, this was treated as if the units were missing, meaning libvirt was unable to parse its own XML correctly. The usage attribute was documented as being in KiB, but it was not scaled if the unit was missing. Transient domains still worked, because this was balanced by an extra 'k' in the mount options. This patch: Changes the parser to use 'units' instead of 'unit', as the latter was never documented (fixing persistent domains) and some programs (libvirt-glib, libvirt-sandbox) already parse the 'units' attribute. Removes the extra 'k' from the tmpfs mount options, which is needed because now we parse our own XML correctly. Changes the default input unit to KiB to match documentation, fixing: https://bugzilla.redhat.com/show_bug.cgi?id=1015689
-
- 04 10月, 2013 1 次提交
-
-
由 Cole Robinson 提交于
Again stolen from qemu_driver.c, but dropping all the unneeded bits. This aims to copy all the current qemu validation checks since that's the most commonly used real driver, but some of the checks are completely artificial in the test driver. This only supports creation of internal snapshots for initial simplicity.
-
- 26 9月, 2013 2 次提交
-
-
由 Peter Krempa 提交于
Tweak some conditions and use correct typecasts in enums.
-
由 Peter Krempa 提交于
Since commit 297c99a5 an invalid source definition XML of a character device that is used as backend for RNG devices, smartcards and redirdevs causes crash of the daemon when parsing such a definition. The device types mentioned above are not a part of a regular character device but are backends for other types. Thus when parsing such device NULL is passed as the argument @chr_def. Later when checking the validity of the definition @chr_def was dereferenced when parsing a UNIX socket backend with missing path of the socket and crashed the daemon. Sample offending configuration: <devices> ... <rng model='virtio'> <backend model='egd' type='unix'> <source mode='bind' service='1024'/> </backend> </rng> </devices> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1012196
-
- 25 9月, 2013 5 次提交
-
-
由 Daniel P. Berrange 提交于
If virBitmapNew fails due to OOM, the 'vcpupin' variable is leaked. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
If the virBitmapParse method fails due to OOM, we leak the 'tmp' variable string. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
If virDomainSoundCodecDefParseXML returns an error (eg due to OOM), then the xml nodeset codecNodes is leaked. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
If virDomainVcpuPinDefArrayFree is called with def != NULL, but nvcpupin == 0, then it leaks memory for 'def'. This is an unusual scenario, but it hits when cleaning up after an OOM during parsing of XML. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Laine Stump 提交于
This resolves one of the issues in: https://bugzilla.redhat.com/show_bug.cgi?id=1003983 This device is identical to qemu's "intel-hda" device (known as "ich6" in libvirt), but has a different PCI device ID (which matches the ID of the hda audio built into the ich9 chipset, of course). It's not supported in earlier versions of qemu, so it requires a capability bit.
-
- 24 9月, 2013 2 次提交
-
-
由 Daniel P. Berrange 提交于
The virDomainDefParseXML method did not check the return value of the virBitmapNew API call for NULL. This lead to a crash on OOM Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
If an OOM error occurs in virSecurityDeviceLabelDefParseXML the cleanup code may free an uninitialized pointer, causing a crash Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 23 9月, 2013 1 次提交
-
-
由 Peter Krempa 提交于
The ABI compatibility check for domain features didn't check the expanded HyperV and APIC EOI values, thus possibly allowing change in guest ABI. Add the check and use typecasted switch statement to warn developers when adding a new HyperV feature.
-
- 18 9月, 2013 1 次提交
-
-
由 Doug Goldstein 提交于
Currently the XML parser already allows the following syntax: <disk type='block' device='cdrom'> <source startupPolicy='optional'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> But it if the dev value is NULL then it would not have the leading "<source ", resulting in invalid XML.
-
- 17 9月, 2013 11 次提交
-
-
由 Aline Manera 提交于
qemu/KVM also supports a tftp URL while specifying the cdrom ISO image. The xml should be as following: <disk type='network' device='cdrom'> <source protocol='tftp' name='/url/path'> <host name='host.name' port='69'/> </source> </disk> Signed-off-by: NAline Manera <alinefm@br.ibm.com>
-
由 Aline Manera 提交于
The ftps protocol is another protocol supported by qemu/KVM while specifying the cdrom ISO image. The xml should be as following: <disk type='network' device='cdrom'> <source protocol='ftps' name='/url/path'> <host name='host.name' port='990'/> </source> </disk> Signed-off-by: NAline Manera <alinefm@br.ibm.com>
-
由 Aline Manera 提交于
The https protocol is also accepted by qemu/KVM when specifying the cdrom ISO image. The xml should be as following: <disk type='network' device='cdrom'> <source protocol='https' name='/url/path'> <host name='host.name' port='443'/> </source> </disk> Signed-off-by: NAline Manera <alinefm@br.ibm.com>
-
由 Peter Krempa 提交于
GCC 4.8.0+ whines about variable "new" being uninitialized since commit 73bfac0e. This is a false positive as the xmlFreeNode(new) statement can be only reached if new was actually allocated successfully. CC conf/libvirt_conf_la-domain_conf.lo conf/domain_conf.c: In function 'virDomainDefSetMetadata': conf/domain_conf.c:18650:24: error: 'new' may be used uninitialized in this function [-Werror=maybe-uninitialized] xmlFreeNode(new); Reported independently by John Ferlan and Michal Privoznik.
-
由 Peter Krempa 提交于
Eric Blake suggested that we could do a little better in case copying of the metadata to be set fails. With this patch, the old metadata is discarded after the new string is copied successfuly.
-
由 Peter Krempa 提交于
The functionality wasn't originally implemented. This patch adds the ability to modify domain's XML metadata using the API.
-
由 Peter Krempa 提交于
The virDomainGetMetadata function was designed to support also retrieval of app specific metadata from the <metadata> element. This functionality was never implemented originally.
-
由 Peter Krempa 提交于
The code to set the metadata in a domain definition is common to live and inactive domains. Factor it out into a common func.
-
由 Peter Krempa 提交于
The function implemented common behavior that can be reused for other hypervisor drivers that use the virDomainObj data structures. Factor out the core into a separate helper func.
-
由 Peter Krempa 提交于
The function implemented common behavior that can be reused for other hypervisor drivers that use the virDomainObj data structures. Factor out the core into a separate helper func.
-
由 Doug Goldstein 提交于
CD-ROMs and Floppies are allowed to have no source to imply they are empty or disconnected. Since the LUN type is used for raw CD-ROM access with QEMU (and VMWare in the future), it also needs to allow an empty source when the raw CD-ROM device is disconnected from the domain.
-
- 11 9月, 2013 1 次提交
-
-
由 Liuji (Jeremy) 提交于
After freeing the bitmap pointer, it must set the pointer to NULL. This will avoid any other use of the freed memory of the bitmap pointer. https://bugzilla.redhat.com/show_bug.cgi?id=1006710Signed-off-by: NLiuji (Jeremy) <jeremy.liu@huawei.com>
-
- 06 9月, 2013 1 次提交
-
-
由 Eric Blake 提交于
'virsh domxml-from-native' and 'virsh qemu-attach' could misbehave for an emulator installed in (a somewhat unlikely) location such as /usr/local/qemu-1.6/qemu-system-x86_64 or (an even less likely) /opt/notxen/qemu-system-x86_64. Limit the strstr seach to just the basename of the file where we are assuming details about the binary based on its name. While testing, I accidentally triggered a core dump during strcmp when I forgot to set os.type on one of my code paths; this patch changes such a coding error to raise a nicer internal error instead. * src/qemu/qemu_command.c (qemuParseCommandLine): Compute basename earlier. * src/conf/domain_conf.c (virDomainDefPostParseInternal): Avoid NULL deref. Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 05 9月, 2013 3 次提交
-
-
由 Liuji (Jeremy) 提交于
Delete the USB controller check from the USB Device checklist in virDomainDeviceIsUSB as USB controller is a PCI device rather than a USB one. Signed-off-by: NLiu Ji <jeremy.liu@huawei.com>
-
由 Daniel P. Berrange 提交于
The VIR_FREE() macro will cast away any const-ness. This masked a number of places where we passed a 'const char *' string to VIR_FREE. Fortunately in all of these cases, the variable was not in fact const data, but a heap allocated string. Fix all the variable declarations to reflect this. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Peter Krempa 提交于
In commit 991270db I've used virDomainNetGetActualHostdev() to get the actual hostdev from a network when removing the network from the list to avoid leaving the hostdev in the list. I didn't notice that this function doesn't check if the actual network is allocated and dereferences it. This crashes the daemon when cleaning up a domain object in early startup phases when the actual network definition isn't allocated. When the actual definition isn't present, the hostdev that might correspond to it won't be present anyways so it's safe to return NULL. Thanks to Cole Robinson for noticing this problem.
-
- 04 9月, 2013 1 次提交
-
-
由 Peter Krempa 提交于
Commit 50348e6e reused the code to remove the hostdev portion of a network definition on multiple places but forgot to take into account that sometimes the "actual" network is passed and in some cases the parent of that. This patch uses the virDomainNetGetActualHostdev() helper to acquire the correct pointer all the time while removing the hostdev portion from the list.
-
- 03 9月, 2013 3 次提交
-
-
由 Cole Robinson 提交于
Starting with qemu 1.6, the qemu-system-arm vexpress-a9 model has a hardcoded virtio-mmio transport which enables attaching all virtio devices. On the command line, we have to use virtio-XXX-device rather than virtio-XXX-pci, thankfully s390 already set the precedent here so it's fairly straight forward. At the XML level, this adds a new device address type virtio-mmio. The controller and addressing don't have any subelements at the moment because we they aren't needed for this usecase, but could be added later if needed. Add a test case for an ARM guest with one of every virtio device enabled.
-
由 Cole Robinson 提交于
This corresponds to '-sd' and '-drive if=sd' on the qemu command line. Needed for many ARM boards which don't provide any other way to pass in storage.
-
由 Cole Robinson 提交于
This should be a no-op change for now.
-
- 02 9月, 2013 1 次提交
-
-
由 Fred A. Kemp 提交于
Add an attribute named 'removable' to the 'target' element of disks, which controls the removable flag. For instance, on a Linux guest it controls the value of /sys/block/$dev/removable. This option is only valid for USB disks (i.e. bus='usb'), and its default value is 'off', which is the same behaviour as before. To achieve this, 'removable=on' (or 'off') is appended to the '-device usb-storage' parameter sent to qemu when adding a USB disk via '-disk'. A capability flag QEMU_CAPS_USB_STORAGE_REMOVABLE was added to keep track if this option is supported by the qemu version used. Bug: https://bugzilla.redhat.com/show_bug.cgi?id=922495Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
-
- 29 8月, 2013 1 次提交
-
-
由 Peter Krempa 提交于
When using a <interface type="network"> that points to a network with hostdev forwarding mode a hostdev alias is created for the network. This allias is inserted into the hostdev list, but is backed with a part of the network object that it is connected to. When a VM is being stopped qemuProcessStop() calls networkReleaseActualDevice() which eventually frees the memory for the hostdev object. Afterwards when the domain definition is being freed by virDomainDefFree() an invalid pointer is accessed by virDomainHostdevDefFree() and may cause a crash of the daemon. This patch removes the entry in the hostdev list before freeing the depending memory to avoid this issue. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1000973
-
- 27 8月, 2013 4 次提交
-
-
由 Ján Tomko 提交于
<controller type='pci' index='0' model='pci-root'> <pcihole64 unit='KiB'>1048576</pcihole64> </controller> It can be used to adjust (or disable) the size of the 64-bit PCI hole. The size attribute is in kilobytes (different unit can be specified on input), but it gets rounded up to the nearest GB by QEMU. Disabling it will be needed for guests that crash with the 64-bit PCI hole (like Windows XP), see: https://bugzilla.redhat.com/show_bug.cgi?id=990418
-
由 Ján Tomko 提交于
virDomainParseScaledValue requires it.
-
由 Ján Tomko 提交于
Let virDomainControllerDefParseXML use it without a forward declaration.
-
由 Aline Manera 提交于
The ftp protocol is already recognized by qemu/KVM so add this support to libvirt as well. The xml should be as following: <disk type='network' device='cdrom'> <source protocol='ftp' name='/url/path'> <host name='host.name' port='21'/> </source> </disk> Signed-off-by: NAline Manera <alinefm@br.ibm.com>
-