Rebuild for changed wireshark soname (rhbz#2031316)
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
2fa7e1b9cc
commit
bc7897c362
|
@ -0,0 +1,81 @@
|
|||
From 7e299ba649b1288d529c7595c0e6060c9ae0ff2a Mon Sep 17 00:00:00 2001
|
||||
From: Michal Privoznik <mprivozn@redhat.com>
|
||||
Date: Mon, 29 Nov 2021 09:57:49 +0100
|
||||
Subject: [PATCH 1/2] wireshark: Switch to tvb_bytes_to_str()
|
||||
|
||||
When the dissector sees a byte sequence that is either an opaque
|
||||
data (xdr_opaque) or a byte sequence (xdr_bytes) it formats the
|
||||
bytes as a hex numbers using our own implementation. But
|
||||
wireshark already provides a function for it: tvb_bytes_to_str().
|
||||
NB, the reason why it returns a const string is so that callers
|
||||
don't try to free it - the string is allocated using an allocator
|
||||
which will decide when to free it.
|
||||
|
||||
The wireshark formatter was introduced in wireshark commit of
|
||||
v1.99.2~479 and thus is present in the version we require at
|
||||
least (2.6.0).
|
||||
|
||||
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
||||
---
|
||||
tools/wireshark/src/packet-libvirt.c | 30 ++++++++--------------------
|
||||
1 file changed, 8 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
|
||||
index f43919b05d..cb922b8070 100644
|
||||
--- a/tools/wireshark/src/packet-libvirt.c
|
||||
+++ b/tools/wireshark/src/packet-libvirt.c
|
||||
@@ -158,24 +158,6 @@ dissect_xdr_string(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||
}
|
||||
}
|
||||
|
||||
-static const gchar *
|
||||
-format_xdr_bytes(guint8 *bytes, guint32 length)
|
||||
-{
|
||||
- gchar *buf;
|
||||
- guint32 i;
|
||||
-
|
||||
- if (length == 0)
|
||||
- return "";
|
||||
- buf = wmem_alloc(wmem_packet_scope(), length*2 + 1);
|
||||
- for (i = 0; i < length; i++) {
|
||||
- /* We know that buf has enough size to contain
|
||||
- 2 * length + '\0' characters. */
|
||||
- g_snprintf(buf, 2*(length - i) + 1, "%02x", bytes[i]);
|
||||
- buf += 2;
|
||||
- }
|
||||
- return buf - length*2;
|
||||
-}
|
||||
-
|
||||
static gboolean
|
||||
dissect_xdr_opaque(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||
guint32 size)
|
||||
@@ -187,8 +169,10 @@ dissect_xdr_opaque(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||
val = g_malloc(size);
|
||||
start = xdr_getpos(xdrs);
|
||||
if ((rc = xdr_opaque(xdrs, (caddr_t)val, size))) {
|
||||
- proto_tree_add_bytes_format_value(tree, hf, tvb, start, xdr_getpos(xdrs) - start,
|
||||
- NULL, "%s", format_xdr_bytes(val, size));
|
||||
+ gint len = xdr_getpos(xdrs) - start;
|
||||
+ const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||
+
|
||||
+ proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||
} else {
|
||||
proto_tree_add_item(tree, hf_libvirt_unknown, tvb, start, -1, ENC_NA);
|
||||
}
|
||||
@@ -207,8 +191,10 @@ dissect_xdr_bytes(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||
|
||||
start = xdr_getpos(xdrs);
|
||||
if (xdr_bytes(xdrs, (char **)&val, &length, maxlen)) {
|
||||
- proto_tree_add_bytes_format_value(tree, hf, tvb, start, xdr_getpos(xdrs) - start,
|
||||
- NULL, "%s", format_xdr_bytes(val, length));
|
||||
+ gint len = xdr_getpos(xdrs) - start;
|
||||
+ const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||
+
|
||||
+ proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||
/* Seems I can't call xdr_free() for this case.
|
||||
It will raises SEGV by referencing out of bounds call stack */
|
||||
free(val);
|
||||
--
|
||||
2.33.1
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 010613cfd8dae6d85602a84c5c95b2d441e1b3d1 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Privoznik <mprivozn@redhat.com>
|
||||
Date: Mon, 29 Nov 2021 10:20:05 +0100
|
||||
Subject: [PATCH 2/2] wireshark: Drop needless comment in dissect_xdr_bytes()
|
||||
|
||||
In the dissect_xdr_bytes() there's a comment that the string
|
||||
allocated by xdr_bytes() can't be freed using xdr_free(). Well,
|
||||
that is expected because xdr_bytes() used plain calloc() AND the
|
||||
string is not an XDR struct but plain 'char *' type. Passing it
|
||||
to xdr_free() must result in weird things happening.
|
||||
|
||||
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
||||
---
|
||||
tools/wireshark/src/packet-libvirt.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
|
||||
index cb922b8070..eeacbcdf0e 100644
|
||||
--- a/tools/wireshark/src/packet-libvirt.c
|
||||
+++ b/tools/wireshark/src/packet-libvirt.c
|
||||
@@ -195,8 +195,6 @@ dissect_xdr_bytes(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||
const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||
|
||||
proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||
- /* Seems I can't call xdr_free() for this case.
|
||||
- It will raises SEGV by referencing out of bounds call stack */
|
||||
free(val);
|
||||
return TRUE;
|
||||
} else {
|
||||
--
|
||||
2.33.1
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
From 979d1ba3ae1332bda80cb6eca98e41dc4462a226 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
|
||||
Date: Tue, 31 Aug 2021 11:41:55 +0200
|
||||
Subject: [PATCH] tests: virstoragetest: remove tests without backing type
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
As of qemu commit:
|
||||
|
||||
commit 497a30dbb065937d67f6c43af6dd78492e1d6f6d
|
||||
qemu-img: Require -F with -b backing image
|
||||
|
||||
creating images with backing images requires specifying the format.
|
||||
|
||||
Remove tests which do not pass the backing format on the command
|
||||
line.
|
||||
|
||||
Signed-off-by: Ján Tomko <jtomko@redhat.com>
|
||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
---
|
||||
tests/virstoragetest.c | 33 ---------------------------------
|
||||
1 file changed, 33 deletions(-)
|
||||
|
||||
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
|
||||
index 1b211b60e6..b80818bc7b 100644
|
||||
--- a/tests/virstoragetest.c
|
||||
+++ b/tests/virstoragetest.c
|
||||
@@ -638,30 +638,6 @@ mymain(void)
|
||||
};
|
||||
TEST_CHAIN(abswrap, VIR_STORAGE_FILE_QCOW2, (&wrap, &qcow2, &raw), EXP_PASS);
|
||||
|
||||
- /* Rewrite qcow2 and wrap file to omit backing file type */
|
||||
- virCommandFree(cmd);
|
||||
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||
- "-b", absraw, "qcow2", NULL);
|
||||
- if (virCommandRun(cmd, NULL) < 0)
|
||||
- ret = -1;
|
||||
-
|
||||
- virCommandFree(cmd);
|
||||
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||
- "-b", absqcow2, "wrap", NULL);
|
||||
- if (virCommandRun(cmd, NULL) < 0)
|
||||
- ret = -1;
|
||||
-
|
||||
- /* Qcow2 file with raw as absolute backing, backing format omitted */
|
||||
- testFileData wrap_as_raw = {
|
||||
- .expBackingStoreRaw = absqcow2,
|
||||
- .expCapacity = 1024,
|
||||
- .path = abswrap,
|
||||
- .type = VIR_STORAGE_TYPE_FILE,
|
||||
- .format = VIR_STORAGE_FILE_QCOW2,
|
||||
- };
|
||||
- TEST_CHAIN(abswrap, VIR_STORAGE_FILE_QCOW2,
|
||||
- (&wrap_as_raw, &qcow2_as_raw), EXP_FAIL);
|
||||
-
|
||||
/* Rewrite qcow2 to a missing backing file, with backing type */
|
||||
virCommandFree(cmd);
|
||||
cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||
@@ -674,15 +650,6 @@ mymain(void)
|
||||
/* Qcow2 file with missing backing file but specified type */
|
||||
TEST_CHAIN(absqcow2, VIR_STORAGE_FILE_QCOW2, (&qcow2), EXP_FAIL);
|
||||
|
||||
- /* Rewrite qcow2 to a missing backing file, without backing type */
|
||||
- virCommandFree(cmd);
|
||||
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||
- "-b", datadir "/bogus", "qcow2", NULL);
|
||||
- if (virCommandRun(cmd, NULL) < 0)
|
||||
- ret = -1;
|
||||
-
|
||||
- /* Qcow2 file with missing backing file and no specified type */
|
||||
- TEST_CHAIN(absqcow2, VIR_STORAGE_FILE_QCOW2, (&qcow2), EXP_FAIL);
|
||||
|
||||
/* Rewrite qcow2 to use an nbd: protocol as backend */
|
||||
virCommandFree(cmd);
|
||||
--
|
||||
2.33.1
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
Summary: Library providing a simple virtualization API
|
||||
Name: libvirt
|
||||
Version: 7.6.0
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: LGPLv2+
|
||||
URL: https://libvirt.org/
|
||||
|
||||
|
@ -215,6 +215,9 @@ URL: https://libvirt.org/
|
|||
%endif
|
||||
Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
|
||||
Patch1: 0001-qemu-xen-add-missing-deps-on-virtlockd-virtlogd-sock.patch
|
||||
Patch2: 0002-wireshark-Switch-to-tvb_bytes_to_str.patch
|
||||
Patch3: 0003-wireshark-Drop-needless-comment-in-dissect_xdr_bytes.patch
|
||||
Patch4: 0004-tests-virstoragetest-remove-tests-without-backing-ty.patch
|
||||
|
||||
Requires: libvirt-daemon = %{version}-%{release}
|
||||
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
||||
|
@ -2066,6 +2069,9 @@ exit 0
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Dec 13 2021 Daniel P. Berrangé <berrange@redhat.com> - 7.6.0-4
|
||||
- Rebuild for changed wireshark soname (rhbz#2031316)
|
||||
|
||||
* Wed Sep 8 2021 Daniel P. Berrangé <berrange@redhat.com> - 7.6.0-3
|
||||
- Fix bad post transaction script tag
|
||||
- Fix deps on virtlockd/virtlogd socket units (rhbz#2002279)
|
||||
|
|
Loading…
Reference in New Issue