Thu Feb 18 05:21:21 2021 UTC ()
Pullup ticket #6423 - requested by bouyer
sysutils/xentools413: security patch

Revisions pulled up:
- sysutils/xentools413/Makefile                                 1.16
- sysutils/xentools413/distinfo                                 1.8
- sysutils/xentools413/patches/patch-XSA355                     1.1
- sysutils/xentools413/patches/patch-tools_xenstore_xenstored_core.c 1.1

-------------------------------------------------------------------
   Module Name:	pkgsrc
   Committed By:	bouyer
   Date:		Wed Feb  3 22:30:22 UTC 2021

   Modified Files:
   	pkgsrc/sysutils/xentools413: Makefile distinfo
   Added Files:
   	pkgsrc/sysutils/xentools413/patches: patch-XSA355
   	    patch-tools_xenstore_xenstored_core.c

   Log Message:
   Add upstream patch for Xen Security Advisory 355
   Also, fix xenstored looping keeping the CPU 100% busy and leaking
   file descriptors.

   To generate a diff of this commit:
   cvs rdiff -u -r1.15 -r1.16 pkgsrc/sysutils/xentools413/Makefile
   cvs rdiff -u -r1.7 -r1.8 pkgsrc/sysutils/xentools413/distinfo
   cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/xentools413/patches/patch-XSA355 \
       pkgsrc/sysutils/xentools413/patches/patch-tools_xenstore_xenstored_core.c


(spz)
diff -r1.14 -r1.14.2.1 pkgsrc/sysutils/xentools413/Makefile
diff -r1.6.2.1 -r1.6.2.2 pkgsrc/sysutils/xentools413/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools413/patches/patch-XSA355
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools413/patches/patch-tools_xenstore_xenstored_core.c

cvs diff -r1.14 -r1.14.2.1 pkgsrc/sysutils/xentools413/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/xentools413/Makefile 2020/12/16 17:17:08 1.14
+++ pkgsrc/sysutils/xentools413/Makefile 2021/02/18 05:21:21 1.14.2.1
@@ -1,21 +1,21 @@ @@ -1,21 +1,21 @@
1# $NetBSD: Makefile,v 1.14 2020/12/16 17:17:08 bouyer Exp $ 1# $NetBSD: Makefile,v 1.14.2.1 2021/02/18 05:21:21 spz Exp $
2# 2#
3VERSION= 4.13.2 3VERSION= 4.13.2
4 4
5DIST_SUBDIR= xen413 5DIST_SUBDIR= xen413
6DISTNAME= xen-${VERSION} 6DISTNAME= xen-${VERSION}
7PKGNAME= xentools413-${VERSION} 7PKGNAME= xentools413-${VERSION}
8PKGREVISION= 2 8PKGREVISION= 3
9#PKGREVISION= 0 9#PKGREVISION= 0
10CATEGORIES= sysutils 10CATEGORIES= sysutils
11MASTER_SITES= https://downloads.xenproject.org/release/xen/${VERSION}/ 11MASTER_SITES= https://downloads.xenproject.org/release/xen/${VERSION}/
12 12
13DISTFILES= ${DISTNAME}.tar.gz 13DISTFILES= ${DISTNAME}.tar.gz
14 14
15SEABIOS_VERSION= 1.12.1 15SEABIOS_VERSION= 1.12.1
16SEABIOS_DIST= seabios-${SEABIOS_VERSION}.tar.gz 16SEABIOS_DIST= seabios-${SEABIOS_VERSION}.tar.gz
17DISTFILES+= ${SEABIOS_DIST} 17DISTFILES+= ${SEABIOS_DIST}
18SITES.${SEABIOS_DIST}= -http://xenbits.xen.org/gitweb/?p=seabios.git;a=snapshot;h=refs/tags/rel-${SEABIOS_VERSION};sf=tgz 18SITES.${SEABIOS_DIST}= -http://xenbits.xen.org/gitweb/?p=seabios.git;a=snapshot;h=refs/tags/rel-${SEABIOS_VERSION};sf=tgz
19 19
20IPXE_VERSION= 1dd56dbd11082fb622c2ed21cfaced4f47d798a6  20IPXE_VERSION= 1dd56dbd11082fb622c2ed21cfaced4f47d798a6
21IPXE_DIST= ipxe-${IPXE_VERSION}.tar.gz 21IPXE_DIST= ipxe-${IPXE_VERSION}.tar.gz

cvs diff -r1.6.2.1 -r1.6.2.2 pkgsrc/sysutils/xentools413/distinfo (expand / switch to unified diff)

--- pkgsrc/sysutils/xentools413/distinfo 2021/01/16 16:35:04 1.6.2.1
+++ pkgsrc/sysutils/xentools413/distinfo 2021/02/18 05:21:21 1.6.2.2
@@ -1,39 +1,40 @@ @@ -1,39 +1,40 @@
1$NetBSD: distinfo,v 1.6.2.1 2021/01/16 16:35:04 spz Exp $ 1$NetBSD: distinfo,v 1.6.2.2 2021/02/18 05:21:21 spz Exp $
2 2
3SHA1 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = b78d21457bc07b4c4d3e770109c169ddafdacdf5 3SHA1 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = b78d21457bc07b4c4d3e770109c169ddafdacdf5
4RMD160 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 846dbcc0f56e87fca8c87b00ca2ed031471d4246 4RMD160 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 846dbcc0f56e87fca8c87b00ca2ed031471d4246
5SHA512 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 0d96236385d241fdddafc88e8b4dac37298f2371b0c61055b78d6ce794166559127de2c110409c55738ca16c4a9e9e1834b03f7a2de85729d0a66cf5c313c9e8 5SHA512 (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 0d96236385d241fdddafc88e8b4dac37298f2371b0c61055b78d6ce794166559127de2c110409c55738ca16c4a9e9e1834b03f7a2de85729d0a66cf5c313c9e8
6Size (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 3814909 bytes 6Size (xen413/ipxe-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz) = 3814909 bytes
7SHA1 (xen413/seabios-1.12.1.tar.gz) = 229f14b55876a20e1b60be075e99569a6bd8967d 7SHA1 (xen413/seabios-1.12.1.tar.gz) = 229f14b55876a20e1b60be075e99569a6bd8967d
8RMD160 (xen413/seabios-1.12.1.tar.gz) = d7e778971c68454b27730213b5d72c0600e77344 8RMD160 (xen413/seabios-1.12.1.tar.gz) = d7e778971c68454b27730213b5d72c0600e77344
9SHA512 (xen413/seabios-1.12.1.tar.gz) = 58755ce842adcb99c0f2f3ebbf9ec6d4a5072753966ab46805a96db1570847b109a90e6e03d61f9088ef877ca8ba96a8006777dc38ec434fce6b487f6c1f91d0 9SHA512 (xen413/seabios-1.12.1.tar.gz) = 58755ce842adcb99c0f2f3ebbf9ec6d4a5072753966ab46805a96db1570847b109a90e6e03d61f9088ef877ca8ba96a8006777dc38ec434fce6b487f6c1f91d0
10Size (xen413/seabios-1.12.1.tar.gz) = 613450 bytes 10Size (xen413/seabios-1.12.1.tar.gz) = 613450 bytes
11SHA1 (xen413/xen-4.13.2.tar.gz) = d514f1de9582c58676420bb2c9fb1c765b44fbff 11SHA1 (xen413/xen-4.13.2.tar.gz) = d514f1de9582c58676420bb2c9fb1c765b44fbff
12RMD160 (xen413/xen-4.13.2.tar.gz) = 96727c20bd84338f8c67c7c584c01ef877bbcb18 12RMD160 (xen413/xen-4.13.2.tar.gz) = 96727c20bd84338f8c67c7c584c01ef877bbcb18
13SHA512 (xen413/xen-4.13.2.tar.gz) = cd3092281c97e9421e303aa288aac04dcccd5536ba7c0ff4d51fbf3d07b5ffacfe3456ba06f5cf63577dafbf8cf3a5d9825ceb5e9ef8ca1427900cc3e57b50a3 13SHA512 (xen413/xen-4.13.2.tar.gz) = cd3092281c97e9421e303aa288aac04dcccd5536ba7c0ff4d51fbf3d07b5ffacfe3456ba06f5cf63577dafbf8cf3a5d9825ceb5e9ef8ca1427900cc3e57b50a3
14Size (xen413/xen-4.13.2.tar.gz) = 39037826 bytes 14Size (xen413/xen-4.13.2.tar.gz) = 39037826 bytes
15SHA1 (patch-Config.mk) = c41005a60de2f94a72b0206030eb021c137653d3 15SHA1 (patch-Config.mk) = c41005a60de2f94a72b0206030eb021c137653d3
16SHA1 (patch-Makefile) = 6c580cbea532d08a38cf5e54228bd0210a98da21 16SHA1 (patch-Makefile) = 6c580cbea532d08a38cf5e54228bd0210a98da21
17SHA1 (patch-XSA115-c) = 7e3216a23c522fc73f47fa6deef8918c4dce7fae 17SHA1 (patch-XSA115-c) = 7e3216a23c522fc73f47fa6deef8918c4dce7fae
18SHA1 (patch-XSA115-o) = 7b8a0f76b9e8345c3bb39ba2dd36207d8563d5ba 18SHA1 (patch-XSA115-o) = 7b8a0f76b9e8345c3bb39ba2dd36207d8563d5ba
19SHA1 (patch-XSA322-c) = dc2f310207b1ab172470485e9e43a3b187d2259f 19SHA1 (patch-XSA322-c) = dc2f310207b1ab172470485e9e43a3b187d2259f
20SHA1 (patch-XSA322-o) = a1cc198752fa7d9336123a1a985317a610cab814 20SHA1 (patch-XSA322-o) = a1cc198752fa7d9336123a1a985317a610cab814
21SHA1 (patch-XSA323) = 98055b0c05ed0d0f5ebbe23d429a68a71d92f20f 21SHA1 (patch-XSA323) = 98055b0c05ed0d0f5ebbe23d429a68a71d92f20f
22SHA1 (patch-XSA324) = a1cdb872a79fd7d9234030ec2765d0a474f72fbb 22SHA1 (patch-XSA324) = a1cdb872a79fd7d9234030ec2765d0a474f72fbb
23SHA1 (patch-XSA325) = 59c7fba006588db4accee1068072612777620ac3 23SHA1 (patch-XSA325) = 59c7fba006588db4accee1068072612777620ac3
24SHA1 (patch-XSA330) = dd745d8ae212f139ed32fcf8c99618fc42642d9e 24SHA1 (patch-XSA330) = dd745d8ae212f139ed32fcf8c99618fc42642d9e
25SHA1 (patch-XSA352) = 7c4479c029d9bbbf6578ee148cb926bb2d849789 25SHA1 (patch-XSA352) = 7c4479c029d9bbbf6578ee148cb926bb2d849789
26SHA1 (patch-XSA353) = 6983aa18399dcf0ac1471ffdf7c27c1bc041f49c 26SHA1 (patch-XSA353) = 6983aa18399dcf0ac1471ffdf7c27c1bc041f49c
 27SHA1 (patch-XSA355) = 73ca5dff042a4a54b06af36e6ace7d09673c05f0
27SHA1 (patch-docs_man_xl-disk-configuration.5.pod) = 9261cc5035dba3414e32955da80707baab042476 28SHA1 (patch-docs_man_xl-disk-configuration.5.pod) = 9261cc5035dba3414e32955da80707baab042476
28SHA1 (patch-docs_man_xl.1.pod.in) = ac3525478471a43fd30fa40c7e89d4b5cb164038 29SHA1 (patch-docs_man_xl.1.pod.in) = ac3525478471a43fd30fa40c7e89d4b5cb164038
29SHA1 (patch-docs_man_xl.cfg.5.pod.in) = 5970961552f29c4536a884161a208a27a20dccf4 30SHA1 (patch-docs_man_xl.cfg.5.pod.in) = 5970961552f29c4536a884161a208a27a20dccf4
30SHA1 (patch-docs_man_xl.conf.5.pod) = 357d941b9c2e875de0b7203bfbe7e8b7b1e140c0 31SHA1 (patch-docs_man_xl.conf.5.pod) = 357d941b9c2e875de0b7203bfbe7e8b7b1e140c0
31SHA1 (patch-docs_man_xlcpupool.cfg.5.pod) = ab3a2529cd10458948557fd7ab032e80df8b1d81 32SHA1 (patch-docs_man_xlcpupool.cfg.5.pod) = ab3a2529cd10458948557fd7ab032e80df8b1d81
32SHA1 (patch-docs_misc_block-scripts.txt) = 29a49edc4d15c4c8db822fd1d6356d07aeb27b86 33SHA1 (patch-docs_misc_block-scripts.txt) = 29a49edc4d15c4c8db822fd1d6356d07aeb27b86
33SHA1 (patch-docs_misc_vtd.txt) = 26c12a3023315f35a6f59b6715b811c989c67680 34SHA1 (patch-docs_misc_vtd.txt) = 26c12a3023315f35a6f59b6715b811c989c67680
34SHA1 (patch-extras_mini-os_Config.mk) = cb5cdb32f1b3c55abad702ab6768caf59d886ff2 35SHA1 (patch-extras_mini-os_Config.mk) = cb5cdb32f1b3c55abad702ab6768caf59d886ff2
35SHA1 (patch-extras_mini-os_arch_x86_arch.mk) = 8b4f1fe0e888f5b70408d2cc3a3968ce27eae5dc 36SHA1 (patch-extras_mini-os_arch_x86_arch.mk) = 8b4f1fe0e888f5b70408d2cc3a3968ce27eae5dc
36SHA1 (patch-extras_mini-os_include_fcntl.h) = 4ed18497227c8c327ee3db9d793caa4ac6254822 37SHA1 (patch-extras_mini-os_include_fcntl.h) = 4ed18497227c8c327ee3db9d793caa4ac6254822
37SHA1 (patch-extras_mini-os_include_time.h) = ab3b0794bf892ce6a036aa889c6852d65b508596 38SHA1 (patch-extras_mini-os_include_time.h) = ab3b0794bf892ce6a036aa889c6852d65b508596
38SHA1 (patch-extras_mini-os_lib_sys.c) = f6514ad743a206c0e81dcccd2586e8fe65bfd1b9 39SHA1 (patch-extras_mini-os_lib_sys.c) = f6514ad743a206c0e81dcccd2586e8fe65bfd1b9
39SHA1 (patch-extras_mini-os_lock.c) = e28753793dee483c1ffad8ea8ed2706353046b50 40SHA1 (patch-extras_mini-os_lock.c) = e28753793dee483c1ffad8ea8ed2706353046b50
@@ -88,18 +89,19 @@ SHA1 (patch-tools_qemu-xen-traditional_h @@ -88,18 +89,19 @@ SHA1 (patch-tools_qemu-xen-traditional_h
88SHA1 (patch-tools_qemu-xen-traditional_hw_pt-msi.h) = 787447cc24518fe5ae16942d72d3038db612419d 89SHA1 (patch-tools_qemu-xen-traditional_hw_pt-msi.h) = 787447cc24518fe5ae16942d72d3038db612419d
89SHA1 (patch-tools_qemu-xen-traditional_i386-dm_hookstarget.mak) = 3fdfbb7c9c2243a4cf5dabc5a6dd13c12f9d5850 90SHA1 (patch-tools_qemu-xen-traditional_i386-dm_hookstarget.mak) = 3fdfbb7c9c2243a4cf5dabc5a6dd13c12f9d5850
90SHA1 (patch-tools_qemu-xen-traditional_net.c) = 0999993172070db5dc8d7c7daaa4999a3edaadb8 91SHA1 (patch-tools_qemu-xen-traditional_net.c) = 0999993172070db5dc8d7c7daaa4999a3edaadb8
91SHA1 (patch-tools_qemu-xen-traditional_xen-hooks.mak) = 528878c8465d75b63e044e4f6c89609e4edbc3e0 92SHA1 (patch-tools_qemu-xen-traditional_xen-hooks.mak) = 528878c8465d75b63e044e4f6c89609e4edbc3e0
92SHA1 (patch-tools_qemu-xen_audio_audio.c) = a7f47ff0350900bcb99b5515eeee162144a98cf8 93SHA1 (patch-tools_qemu-xen_audio_audio.c) = a7f47ff0350900bcb99b5515eeee162144a98cf8
93SHA1 (patch-tools_qemu-xen_configure) = 38eee924f66c226a09c2408312fc0f67d99d2b81 94SHA1 (patch-tools_qemu-xen_configure) = 38eee924f66c226a09c2408312fc0f67d99d2b81
94SHA1 (patch-tools_qemu-xen_net_tap-bsd.c) = ac1ed72daeb051eae7352542630a9a02c99e485e 95SHA1 (patch-tools_qemu-xen_net_tap-bsd.c) = ac1ed72daeb051eae7352542630a9a02c99e485e
95SHA1 (patch-tools_qemu-xen_net_tap.c) = 53d8c1799136c412b775d7d02d72b1abc63f4dd3 96SHA1 (patch-tools_qemu-xen_net_tap.c) = 53d8c1799136c412b775d7d02d72b1abc63f4dd3
96SHA1 (patch-tools_qemu-xen_qemu-doc.texi) = e72d480ec29829055f01226eaf020d4cbd100d5d 97SHA1 (patch-tools_qemu-xen_qemu-doc.texi) = e72d480ec29829055f01226eaf020d4cbd100d5d
97SHA1 (patch-tools_xenpaging_xenpaging.c) = 0a154b97f1f452a5f80f7c9a835a1f216f12f7e1 98SHA1 (patch-tools_xenpaging_xenpaging.c) = 0a154b97f1f452a5f80f7c9a835a1f216f12f7e1
98SHA1 (patch-tools_xenpmd_xenpmd.c) = 851ce7a295e2f41ffcd966850d8003c82670c751 99SHA1 (patch-tools_xenpmd_xenpmd.c) = 851ce7a295e2f41ffcd966850d8003c82670c751
99SHA1 (patch-tools_xenstat_libxenstat_src_xenstat_netbsd.c) = e0f52d2a6ce9c92780209ed5b6f6f2ad1c175221 100SHA1 (patch-tools_xenstat_libxenstat_src_xenstat_netbsd.c) = e0f52d2a6ce9c92780209ed5b6f6f2ad1c175221
100SHA1 (patch-tools_xenstore_xc.c) = cf49b65cba064667e13bb041d1f0099c76ab6a40 101SHA1 (patch-tools_xenstore_xc.c) = cf49b65cba064667e13bb041d1f0099c76ab6a40
 102SHA1 (patch-tools_xenstore_xenstored_core.c) = f3d3011cb945772f298404b3505ca032a8bc06ea
101SHA1 (patch-tools_xenstore_xs_lib.c) = e3a8f6e3b149c3ab0f4ec8dcfa455983f94e6c16 103SHA1 (patch-tools_xenstore_xs_lib.c) = e3a8f6e3b149c3ab0f4ec8dcfa455983f94e6c16
102SHA1 (patch-tools_xentrace_xentrace.c) = f964c7555f454358a39f28a2e75db8ee100a4243 104SHA1 (patch-tools_xentrace_xentrace.c) = f964c7555f454358a39f28a2e75db8ee100a4243
103SHA1 (patch-tools_xl_Makefile) = dd4fa8cc66c74eea8b022cd6129aa2831776f2a8 105SHA1 (patch-tools_xl_Makefile) = dd4fa8cc66c74eea8b022cd6129aa2831776f2a8
104SHA1 (patch-xen_Rules.mk) = c743dc63f51fc280d529a7d9e08650292c171dac 106SHA1 (patch-xen_Rules.mk) = c743dc63f51fc280d529a7d9e08650292c171dac
105SHA1 (patch-xen_tools_symbols.c) = 67b5a38312095029631e00457abc0e4bb633aaf8 107SHA1 (patch-xen_tools_symbols.c) = 67b5a38312095029631e00457abc0e4bb633aaf8

File Added: pkgsrc/sysutils/xentools413/patches/Attic/patch-XSA355
$NetBSD: patch-XSA355,v 1.1.2.2 2021/02/18 05:21:21 spz Exp $

From: Jan Beulich <jbeulich@suse.com>
Subject: memory: fix off-by-one in XSA-346 change

The comparison against ARRAY_SIZE() needs to be >= in order to avoid
overrunning the pages[] array.

This is XSA-355.

Fixes: 5777a3742d88 ("IOMMU: hold page ref until after deferred TLB flush")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>

--- xen/common/memory.c.orig
+++ xen/common/memory.c
@@ -854,7 +854,7 @@ int xenmem_add_to_physmap(struct domain
             ++extra.ppage;
 
         /* Check for continuation if it's not the last iteration. */
-        if ( (++done > ARRAY_SIZE(pages) && extra.ppage) ||
+        if ( (++done >= ARRAY_SIZE(pages) && extra.ppage) ||
              (xatp->size > done && hypercall_preempt_check()) )
         {
             rc = start + done;

File Added: pkgsrc/sysutils/xentools413/patches/patch-tools_xenstore_xenstored_core.c
$NetBSD: patch-tools_xenstore_xenstored_core.c,v 1.1.2.2 2021/02/18 05:21:21 spz Exp $

On error, don't keep socket connection in ignored state but close them.
When the remote end of a socket is closed, xenstored will flag it as an
error and switch the connection to ignored. But on some OSes (e.g.
NetBSD), poll(2) will return only POLLIN in this case, so sockets in ignored
state will stay open forever in xenstored (and it will loop with CPU 100%
busy).

Signed-off-by: Manuel Bouyer <bouyer@netbsd.org>
Fixes: d2fa370d3ef9cbe22d7256c608671cdcdf6e0083
---
 tools/xenstore/xenstored_core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c
index 1ab6f162cb..0fea598352 100644
--- tools/xenstore/xenstored_core.c.orig
+++ tools/xenstore/xenstored_core.c
@@ -1440,6 +1440,9 @@ static void ignore_connection(struct connection *conn)
 
 	talloc_free(conn->in);
 	conn->in = NULL;
+	/* if this is a socket connection, drop it now */
+	if (conn->fd >= 0)
+		talloc_free(conn);
 }
 
 static const char *sockmsg_string(enum xsd_sockmsg_type type)