[libvirt] [PATCH 0/2] Fix another possible memory leak in nwfilter
by John Ferlan
Oh lucky me - why am I stuck in nwfilter land....
The first patch just cleans up the code and the second one resolves the
memory leak problem as well as a general error path problem.
Coverity noted that the error path wasn't checked - this is because
other recent changes in the module caused Coverity to decide to rethink
about this one noticing the lack of an error check. Of course upon more
visual inspection, the memory leak was obvious too.
John Ferlan (2):
nwfilter: Clean up virNWFilterDetermineMissingVarsRec returns
nwfilter: Fix memory leak and error path
src/nwfilter/nwfilter_gentech_driver.c | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
--
2.13.5
7 years, 6 months
[libvirt] [PATCH go-xml] qemu: extend serial console source
by Jeroen Simonetti
*Warning* this is a BWC breaking change!
This will change the type of `DomainSerial.Source` from
`*DomainChardevSource` to a new `*DomainSerialSource`.
This is done to add support for networked serial ports and
keep the original DomainChardevSource unchanged.
DomainSerialSource contains all possible xml variations
for a serial device source.
Signed-off-by: Jeroen Simonetti <jeroen(a)simonetti.nl>
---
domain.go | 32 ++++++++++++++++++++++++++------
domain_test.go | 30 ++++++++++++++++++++++++++++--
2 files changed, 54 insertions(+), 8 deletions(-)
diff --git a/domain.go b/domain.go
index 8c2cc1b..3221423 100644
--- a/domain.go
+++ b/domain.go
@@ -309,12 +309,32 @@ type DomainConsole struct {
}
type DomainSerial struct {
- XMLName xml.Name `xml:"serial"`
- Type string `xml:"type,attr"`
- Source *DomainChardevSource `xml:"source"`
- Target *DomainSerialTarget `xml:"target"`
- Alias *DomainAlias `xml:"alias"`
- Address *DomainAddress `xml:"address"`
+ XMLName xml.Name `xml:"serial"`
+ Type string `xml:"type,attr"`
+ Source *DomainSerialSource `xml:"source"`
+ Protocol *DomainSerialProtocol `xml:"protocol"`
+ Target *DomainSerialTarget `xml:"target"`
+ Alias *DomainAlias `xml:"alias"`
+ Address *DomainAddress `xml:"address"`
+}
+
+type DomainSerialSource struct {
+ Mode string `xml:"mode,attr,omitempty"`
+ Path string `xml:"path,attr,omitempty"`
+ Append string `xml:"append,attr,omitempty"`
+ Host string `xml:"host,attr,omitempty"`
+ Service string `xml:"service,attr,omitempty"`
+ TLS string `xml:"tls,attr,omitempty"`
+ SecLabel *DomainSerialSourceSecLabel `xml:"seclabel"`
+}
+
+type DomainSerialProtocol struct {
+ Type string `xml:"type,attr"`
+}
+
+type DomainSerialSourceSecLabel struct {
+ Model string `xml:"model,attr,omitempty"`
+ Relabel string `xml:"relabel,attr,omitempty"`
}
type DomainChannel struct {
diff --git a/domain_test.go b/domain_test.go
index 4fe6bfe..d301ace 100644
--- a/domain_test.go
+++ b/domain_test.go
@@ -314,9 +314,28 @@ var domainTestData = []struct {
},
DomainSerial{
Type: "file",
- Source: &DomainChardevSource{
+ Source: &DomainSerialSource{
Path: "/tmp/serial.log",
Append: "off",
+ SecLabel: &DomainSerialSourceSecLabel{
+ Model: "dac",
+ Relabel: "no",
+ },
+ },
+ Target: &DomainSerialTarget{
+ Port: &serialPort,
+ },
+ },
+ DomainSerial{
+ Type: "tcp",
+ Source: &DomainSerialSource{
+ Mode: "bind",
+ Host: "127.0.0.1",
+ Service: "1234",
+ TLS: "yes",
+ },
+ Protocol: &DomainSerialProtocol{
+ Type: "telnet",
},
Target: &DomainSerialTarget{
Port: &serialPort,
@@ -382,7 +401,14 @@ var domainTestData = []struct {
` <target type="isa" port="0"></target>`,
` </serial>`,
` <serial type="file">`,
- ` <source path="/tmp/serial.log" append="off"></source>`,
+ ` <source path="/tmp/serial.log" append="off">`,
+ ` <seclabel model="dac" relabel="no"></seclabel>`,
+ ` </source>`,
+ ` <target port="0"></target>`,
+ ` </serial>`,
+ ` <serial type="tcp">`,
+ ` <source mode="bind" host="127.0.0.1" service="1234" tls="yes"></source>`,
+ ` <protocol type="telnet"></protocol>`,
` <target port="0"></target>`,
` </serial>`,
` <console type="pty">`,
--
2.14.2
7 years, 6 months
[libvirt] [PATCH] docs: Add some changes to news.xml for this release
by Martin Kletzander
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
docs/news.xml | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index aab812b259cf..c9e7e4b9d1e4 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -35,6 +35,26 @@
<libvirt>
<release version="v3.8.0" date="unreleased">
<section title="New features">
+ <change>
+ <summary>
+ qemu: Added support for cold-(un)plug of watchdog devices
+ </summary>
+ </change>
+ <change>
+ <summary>
+ qemu: Added support for setting IP address os usernet interfaces
+ </summary>
+ </change>
+ <change>
+ <summary>
+ qemu: Added support for Veritas Hyperscale (VxHS) block devices
+ </summary>
+ </change>
+ <change>
+ <summary>
+ storage: Added new events for pool-build and pool-delete
+ </summary>
+ </change>
</section>
<section title="Improvements">
<change>
@@ -59,8 +79,69 @@
kernel-forward-plane-offload).
</description>
</change>
+ <change>
+ <summary>
+ New CPU models for AMD and Intel
+ </summary>
+ <description>
+ AMD EPYC and Intel Skylake-Server CPU models were added together with
+ their features
+ </description>
+ </change>
+ <change>
+ <summary>
+ Improve long waiting when saving a domain
+ </summary>
+ <description>
+ While waiting for a write to disk to be finished, e.g. during save,
+ even simple operations like <code>virsh list</code> would be blocking
+ due to domain lock. This is now resolved by unlocking the domain
+ in places where it is not needed.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
+ <change>
+ <summary>
+ Proper units are now used in virsh manpage for dom(mem)stats
+ </summary>
+ <description>
+ Previously the documentation used multiples of 1000, but now it is
+ fixe to use multiples of 1024.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix error reporting when disk attachment fails
+ </summary>
+ <description>
+ There was a possibility for the actual error to be overridden or
+ cleared during the rollback.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix assignment of graphics ports after daemon restart
+ </summary>
+ <description>
+ This could be seen with newer kernels that have bug regarding
+ SO_REUSEADDR. After libvirtd was restarted it could assign already
+ used address to new guests which would make them fail to start. This
+ is fixed by marking used ports unavailable when reconnecting to
+ running QEMU domains.
+ </description>
+ </change>
+ <change>
+ <summary>
+ Fix message decoding which was caused very strange bug
+ </summary>
+ <description>
+ When parsing an RPC message with file descriptors was interrupted and
+ had to restart, the offset of the payload was calculated badly causing
+ strange issues like not being able to find a domain that was not
+ requested.
+ </description>
+ </change>
</section>
</release>
<release version="v3.7.0" date="2017-09-04">
--
2.14.2
7 years, 6 months
[libvirt] [PATCH v2 0/2] Clean up the nwfilter mess I created
by John Ferlan
v1: https://www.redhat.com/archives/libvir-list/2017-September/msg01072.html
Changes:
* Patch1: No change, ACK'd, but not safe to push yet either..
* Patch2: Rather than have virNWFilterIPAddrMapAddIPAddr consume
the input @addr, let's make a copy of the input parameter
and manage it within that code so that it wouldn't be
consumed on virNWFilterHashTablePut failure after
virNWFilterVarValueCreateSimple success.
John Ferlan (2):
Revert "nwfilter: Fix possible segfault on sometimes consumed
variable"
nwfilter: Don't have virNWFilterIPAddrMapAddIPAddr consume input
src/conf/nwfilter_ipaddrmap.c | 16 +++++++++-------
src/nwfilter/nwfilter_dhcpsnoop.c | 3 ---
2 files changed, 9 insertions(+), 10 deletions(-)
--
2.13.5
7 years, 6 months