Accepting request 1007904 from home:dfaggioli:devel:Virtualization
- Fix bsc#1204001. Patches are not upstream, and have been picked up and backported from the ML. This is something we usually prefer to avoid, but this is urgent, and the patches looks fine, with high chances for them to be included as they are (and if they're not, we will revisit this, i.e., drop them and re-include the ones that are actually committed) * Patches added: linux-user-add-more-compat-ioctl-definit.patch linux-user-drop-conditionals-for-obsolet.patch linux-user-remove-conditionals-for-many-.patch meson-enforce-a-minimum-Linux-kernel-hea.patch - Improve the output of update_git.sh, by including the list of repos to which we have downstream patches. - Fix: bsc#1202665, CVE-2022-2962 * Patches added: net-tulip-Restrict-DMA-engine-to-memorie.patch OBS-URL: https://build.opensuse.org/request/show/1007904 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=735
This commit is contained in:
parent
d889bd32da
commit
d4b795b3fc
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dd2a3b0dd5a7afd9f7bf34d986fa29521b25e75ef3f83312f7332668abeae2e9
|
||||
size 40104
|
||||
oid sha256:16313b28799b38f8a397b8c3886445780eaff2dc86234f366d8ee5fdfcdb5046
|
||||
size 44932
|
||||
|
66
linux-user-add-more-compat-ioctl-definit.patch
Normal file
66
linux-user-add-more-compat-ioctl-definit.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:03 +0100
|
||||
Subject: linux-user: add more compat ioctl definitions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
GLibc changes prevent us from including linux/fs.h anymore,
|
||||
and we previously adjusted to this in
|
||||
|
||||
commit 3cd3df2a9584e6f753bb62a0028bd67124ab5532
|
||||
Author: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Date: Tue Aug 2 12:41:34 2022 -0400
|
||||
|
||||
linux-user: fix compat with glibc >= 2.36 sys/mount.h
|
||||
|
||||
That change required adding compat ioctl definitions on the
|
||||
QEMU side for any ioctls that we would otherwise obtain
|
||||
from linux/fs.h. This commit adds more that were initially
|
||||
missed, due to their usage being conditionalized in QEMU.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/syscall.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 9d92e56e3996dc2174a4af9d0491..5acb463d5e11311b2108358c7c01 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -111,6 +111,31 @@
|
||||
#define FS_IOC32_SETFLAGS _IOW('f', 2, int)
|
||||
#define FS_IOC32_GETVERSION _IOR('v', 1, int)
|
||||
#define FS_IOC32_SETVERSION _IOW('v', 2, int)
|
||||
+
|
||||
+#define BLKGETSIZE64 _IOR(0x12,114,size_t)
|
||||
+#define BLKDISCARD _IO(0x12,119)
|
||||
+#define BLKIOMIN _IO(0x12,120)
|
||||
+#define BLKIOOPT _IO(0x12,121)
|
||||
+#define BLKALIGNOFF _IO(0x12,122)
|
||||
+#define BLKPBSZGET _IO(0x12,123)
|
||||
+#define BLKDISCARDZEROES _IO(0x12,124)
|
||||
+#define BLKSECDISCARD _IO(0x12,125)
|
||||
+#define BLKROTATIONAL _IO(0x12,126)
|
||||
+#define BLKZEROOUT _IO(0x12,127)
|
||||
+
|
||||
+#define FIBMAP _IO(0x00,1)
|
||||
+#define FIGETBSZ _IO(0x00,2)
|
||||
+
|
||||
+struct file_clone_range {
|
||||
+ __s64 src_fd;
|
||||
+ __u64 src_offset;
|
||||
+ __u64 src_length;
|
||||
+ __u64 dest_offset;
|
||||
+};
|
||||
+
|
||||
+#define FICLONE _IOW(0x94, 9, int)
|
||||
+#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range)
|
||||
+
|
||||
#else
|
||||
#include <linux/fs.h>
|
||||
#endif
|
134
linux-user-drop-conditionals-for-obsolet.patch
Normal file
134
linux-user-drop-conditionals-for-obsolet.patch
Normal file
@ -0,0 +1,134 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:06 +0100
|
||||
Subject: linux-user: drop conditionals for obsolete kernel header versions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
Given our newly enforced 4.18 baseline for the kernel headers version,
|
||||
we can drop any conditional checks for older versions.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/linux_loop.h | 4 ----
|
||||
linux-user/syscall.c | 14 ++------------
|
||||
tests/tcg/i386/test-i386.c | 10 +++-------
|
||||
3 files changed, 5 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/linux-user/linux_loop.h b/linux-user/linux_loop.h
|
||||
index f80b96f1ff92c71bc1232b733d37..5a9e0edef2729642bfca8f146e6d 100644
|
||||
--- a/linux-user/linux_loop.h
|
||||
+++ b/linux-user/linux_loop.h
|
||||
@@ -31,10 +31,6 @@ enum {
|
||||
#include <asm/posix_types.h> /* for __kernel_old_dev_t */
|
||||
#include <asm/types.h> /* for __u64 */
|
||||
|
||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess. */
|
||||
-#define __kernel_old_dev_t __kernel_dev_t
|
||||
-#endif
|
||||
-
|
||||
/* Backwards compatibility version */
|
||||
struct loop_info {
|
||||
int lo_number; /* ioctl r/o */
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 5acb463d5e11311b2108358c7c01..d7c0d4a45d3907f1ef28fe93f9b6 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -2525,16 +2525,12 @@ set_timeout:
|
||||
case NETLINK_DROP_MEMBERSHIP:
|
||||
case NETLINK_BROADCAST_ERROR:
|
||||
case NETLINK_NO_ENOBUFS:
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LISTEN_ALL_NSID:
|
||||
case NETLINK_CAP_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
case NETLINK_EXT_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
|
||||
case NETLINK_GET_STRICT_CHK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */
|
||||
break;
|
||||
default:
|
||||
goto unimplemented;
|
||||
@@ -2903,16 +2899,12 @@ get_timeout:
|
||||
case NETLINK_PKTINFO:
|
||||
case NETLINK_BROADCAST_ERROR:
|
||||
case NETLINK_NO_ENOBUFS:
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LISTEN_ALL_NSID:
|
||||
case NETLINK_CAP_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
case NETLINK_EXT_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
|
||||
case NETLINK_GET_STRICT_CHK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */
|
||||
if (get_user_u32(len, optlen)) {
|
||||
return -TARGET_EFAULT;
|
||||
}
|
||||
@@ -2929,7 +2921,6 @@ get_timeout:
|
||||
return -TARGET_EFAULT;
|
||||
}
|
||||
break;
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LIST_MEMBERSHIPS:
|
||||
{
|
||||
uint32_t *results;
|
||||
@@ -2960,7 +2951,6 @@ get_timeout:
|
||||
unlock_user(results, optval_addr, 0);
|
||||
break;
|
||||
}
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
default:
|
||||
goto unimplemented;
|
||||
}
|
||||
diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c
|
||||
index ac8d5a3c1f8b6eacf32649155c98..bd7ebb9d68b9e90673ed16a6f4cd 100644
|
||||
--- a/tests/tcg/i386/test-i386.c
|
||||
+++ b/tests/tcg/i386/test-i386.c
|
||||
@@ -1231,10 +1231,6 @@ static inline int modify_ldt(int func, void * ptr, unsigned long bytecount)
|
||||
return syscall(__NR_modify_ldt, func, ptr, bytecount);
|
||||
}
|
||||
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 66)
|
||||
-#define modify_ldt_ldt_s user_desc
|
||||
-#endif
|
||||
-
|
||||
#define MK_SEL(n) (((n) << 3) | 7)
|
||||
|
||||
uint8_t seg_data1[4096];
|
||||
@@ -1272,7 +1268,7 @@ uint8_t seg_data2[4096];
|
||||
/* NOTE: we use Linux modify_ldt syscall */
|
||||
void test_segs(void)
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
long long ldt_table[3];
|
||||
int res, res2;
|
||||
char tmp;
|
||||
@@ -1374,7 +1370,7 @@ extern char code16_func3;
|
||||
|
||||
void test_code16(void)
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
int res, res2;
|
||||
|
||||
/* build a code segment */
|
||||
@@ -1781,7 +1777,7 @@ void test_exceptions(void)
|
||||
}
|
||||
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
ldt.entry_number = 1;
|
||||
ldt.base_addr = (unsigned long)&seg_data1;
|
||||
ldt.limit = (sizeof(seg_data1) + 0xfff) >> 12;
|
101
linux-user-remove-conditionals-for-many-.patch
Normal file
101
linux-user-remove-conditionals-for-many-.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:04 +0100
|
||||
Subject: linux-user: remove conditionals for many fs.h ioctls
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
These ioctls have been defined in linux/fs.h for a long time
|
||||
|
||||
* BLKGETSIZE64 - <2.6.12 (linux.git epoch)
|
||||
* BLKDISCARD - 2.6.28 (d30a2605be9d5132d95944916e8f578fcfe4f976)
|
||||
* BLKIOMIN - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKIOOPT - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKALIGNOFF - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKPBSZGET - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKDISCARDZEROES - 2.6.32 (98262f2762f0067375f83824d81ea929e37e6bfe)
|
||||
* BLKSECDISCARD - 2.6.36 (8d57a98ccd0b4489003473979da8f5a1363ba7a3)
|
||||
* BLKROTATIONAL - 3.2 (ef00f59c95fe6e002e7c6e3663cdea65e253f4cc)
|
||||
* BLKZEROOUT - 3.6 (66ba32dc167202c3cf8c86806581a9393ec7f488)
|
||||
* FIBMAP - <2.6.12 (linux.git epoch)
|
||||
* FIGETBSZ - <2.6.12 (linux.git epoch)
|
||||
|
||||
and when building with latest glibc, we'll see compat definitions
|
||||
in syscall.c anyway thanks to the previous patch. Thus we can
|
||||
assume they always exist and remove the conditional checks.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/ioctls.h | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
|
||||
index f182d40190ed43ffa1bbc4fd09cb..071f7ca2537560e3c923c9a18abb 100644
|
||||
--- a/linux-user/ioctls.h
|
||||
+++ b/linux-user/ioctls.h
|
||||
@@ -96,9 +96,7 @@
|
||||
IOCTL(BLKROGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL(BLKRRPART, 0, TYPE_NULL)
|
||||
IOCTL(BLKGETSIZE, IOC_R, MK_PTR(TYPE_ULONG))
|
||||
-#ifdef BLKGETSIZE64
|
||||
IOCTL(BLKGETSIZE64, IOC_R, MK_PTR(TYPE_ULONGLONG))
|
||||
-#endif
|
||||
IOCTL(BLKFLSBUF, 0, TYPE_NULL)
|
||||
IOCTL(BLKRASET, 0, TYPE_INT)
|
||||
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||
@@ -107,33 +105,15 @@
|
||||
IOCTL_SPECIAL(BLKPG, IOC_W, do_ioctl_blkpg,
|
||||
MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
|
||||
|
||||
-#ifdef BLKDISCARD
|
||||
IOCTL(BLKDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
-#ifdef BLKIOMIN
|
||||
IOCTL(BLKIOMIN, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKIOOPT
|
||||
IOCTL(BLKIOOPT, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKALIGNOFF
|
||||
IOCTL(BLKALIGNOFF, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKPBSZGET
|
||||
IOCTL(BLKPBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKDISCARDZEROES
|
||||
IOCTL(BLKDISCARDZEROES, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKSECDISCARD
|
||||
IOCTL(BLKSECDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
-#ifdef BLKROTATIONAL
|
||||
IOCTL(BLKROTATIONAL, IOC_R, MK_PTR(TYPE_SHORT))
|
||||
-#endif
|
||||
-#ifdef BLKZEROOUT
|
||||
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
|
||||
IOCTL(FDMSGON, 0, TYPE_NULL)
|
||||
IOCTL(FDMSGOFF, 0, TYPE_NULL)
|
||||
@@ -149,17 +129,13 @@
|
||||
IOCTL(FDTWADDLE, 0, TYPE_NULL)
|
||||
IOCTL(FDEJECT, 0, TYPE_NULL)
|
||||
|
||||
-#ifdef FIBMAP
|
||||
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
||||
-#endif
|
||||
#ifdef FICLONE
|
||||
IOCTL(FICLONE, IOC_W, TYPE_INT)
|
||||
IOCTL(FICLONERANGE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_file_clone_range)))
|
||||
#endif
|
||||
|
||||
-#ifdef FIGETBSZ
|
||||
IOCTL(FIGETBSZ, IOC_R, MK_PTR(TYPE_LONG))
|
||||
-#endif
|
||||
#ifdef CONFIG_FIEMAP
|
||||
IOCTL_SPECIAL(FS_IOC_FIEMAP, IOC_W | IOC_R, do_ioctl_fs_ioc_fiemap,
|
||||
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
|
62
meson-enforce-a-minimum-Linux-kernel-hea.patch
Normal file
62
meson-enforce-a-minimum-Linux-kernel-hea.patch
Normal file
@ -0,0 +1,62 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:05 +0100
|
||||
Subject: meson: enforce a minimum Linux kernel headers version >= 4.18
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
Various areas of QEMU have a dependency on Linux kernel header
|
||||
definitions. This falls under the scope of our supported platforms
|
||||
matrix, but historically we've not checked for a minimum kernel
|
||||
headers version. This has made it unclear when we can drop support
|
||||
for older kernel headers.
|
||||
|
||||
* Alpine 3.14: 5.10
|
||||
* CentOS 8: 4.18
|
||||
* CentOS 9: 5.14
|
||||
* Debian 10: 4.19
|
||||
* Debian 11: 5.10
|
||||
* Fedora 35: 5.19
|
||||
* Fedora 36: 5.19
|
||||
* OpenSUSE 15.3: 5.3.0
|
||||
* Ubuntu 20.04: 5.4
|
||||
* Ubuntu 22.04: 5.15
|
||||
|
||||
The above ignores the 3rd version digit since distros update their
|
||||
packages periodically and such updates don't generally affect public
|
||||
APIs to the extent that it matters for our build time check.
|
||||
|
||||
Overall, we can set the baseline to 4.18 currently.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
meson.build | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 09145d35aa3e684e92da7895ac67..a923eedefd56bc1401a111d6d8f7 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -248,6 +248,18 @@ if targetos == 'linux'
|
||||
add_project_arguments('-isystem', meson.current_source_dir() / 'linux-headers',
|
||||
'-isystem', 'linux-headers',
|
||||
language: ['c', 'cpp'])
|
||||
+
|
||||
+ if not cc.compiles('''
|
||||
+ #include <linux/version.h>
|
||||
+ int main(void) {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||
+#error "QEMU requires Linux kernel headers version >= 4.18.0"
|
||||
+#endif
|
||||
+ return 0;
|
||||
+ }''')
|
||||
+ error('QEMU requires Linux kernel headers version >= 4.18.0')
|
||||
+endif
|
||||
+
|
||||
endif
|
||||
|
||||
add_project_arguments('-iquote', '.',
|
60
net-tulip-Restrict-DMA-engine-to-memorie.patch
Normal file
60
net-tulip-Restrict-DMA-engine-to-memorie.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From: Zheyu Ma <zheyuma97@gmail.com>
|
||||
Date: Sun, 21 Aug 2022 20:43:43 +0800
|
||||
Subject: net: tulip: Restrict DMA engine to memories
|
||||
|
||||
Git-commit: 36a894aeb64a2e02871016da1c37d4a4ca109182
|
||||
References: bsc#1202665, CVE-2022-2962
|
||||
|
||||
The DMA engine is started by I/O access and then itself accesses the
|
||||
I/O registers, triggering a reentrancy bug.
|
||||
|
||||
The following log can reveal it:
|
||||
==5637==ERROR: AddressSanitizer: stack-overflow
|
||||
#0 0x5595435f6078 in tulip_xmit_list_update qemu/hw/net/tulip.c:673
|
||||
#1 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13
|
||||
#2 0x559544637f86 in memory_region_write_accessor qemu/softmmu/memory.c:492:5
|
||||
#3 0x5595446379fa in access_with_adjusted_size qemu/softmmu/memory.c:554:18
|
||||
#4 0x5595446372fa in memory_region_dispatch_write qemu/softmmu/memory.c
|
||||
#5 0x55954468b74c in flatview_write_continue qemu/softmmu/physmem.c:2825:23
|
||||
#6 0x559544683662 in flatview_write qemu/softmmu/physmem.c:2867:12
|
||||
#7 0x5595446833f3 in address_space_write qemu/softmmu/physmem.c:2963:18
|
||||
#8 0x5595435fb082 in dma_memory_rw_relaxed qemu/include/sysemu/dma.h:87:12
|
||||
#9 0x5595435fb082 in dma_memory_rw qemu/include/sysemu/dma.h:130:12
|
||||
#10 0x5595435fb082 in dma_memory_write qemu/include/sysemu/dma.h:171:12
|
||||
#11 0x5595435fb082 in stl_le_dma qemu/include/sysemu/dma.h:272:1
|
||||
#12 0x5595435fb082 in stl_le_pci_dma qemu/include/hw/pci/pci.h:910:1
|
||||
#13 0x5595435fb082 in tulip_desc_write qemu/hw/net/tulip.c:101:9
|
||||
#14 0x5595435f7e3d in tulip_xmit_list_update qemu/hw/net/tulip.c:706:9
|
||||
#15 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13
|
||||
|
||||
Fix this bug by restricting the DMA engine to memories regions.
|
||||
|
||||
Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
hw/net/tulip.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/net/tulip.c b/hw/net/tulip.c
|
||||
index 097e905bec296dd1c5e96771ef63..b9e42c322ab1fb92416adfc5fda9 100644
|
||||
--- a/hw/net/tulip.c
|
||||
+++ b/hw/net/tulip.c
|
||||
@@ -70,7 +70,7 @@ static const VMStateDescription vmstate_pci_tulip = {
|
||||
static void tulip_desc_read(TULIPState *s, hwaddr p,
|
||||
struct tulip_descriptor *desc)
|
||||
{
|
||||
- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
|
||||
+ const MemTxAttrs attrs = { .memory = true };
|
||||
|
||||
if (s->csr[0] & CSR0_DBO) {
|
||||
ldl_be_pci_dma(&s->dev, p, &desc->status, attrs);
|
||||
@@ -88,7 +88,7 @@ static void tulip_desc_read(TULIPState *s, hwaddr p,
|
||||
static void tulip_desc_write(TULIPState *s, hwaddr p,
|
||||
struct tulip_descriptor *desc)
|
||||
{
|
||||
- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
|
||||
+ const MemTxAttrs attrs = { .memory = true };
|
||||
|
||||
if (s->csr[0] & CSR0_DBO) {
|
||||
stl_be_pci_dma(&s->dev, p, desc->status, attrs);
|
28
qemu.changes
28
qemu.changes
@ -1,3 +1,31 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 4 11:49:53 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
- Fix bsc#1204001. Patches are not upstream, and have been picked up
|
||||
and backported from the ML. This is something we usually prefer to
|
||||
avoid, but this is urgent, and the patches looks fine, with high
|
||||
chances for them to be included as they are (and if they're not, we
|
||||
will revisit this, i.e., drop them and re-include the ones that are
|
||||
actually committed)
|
||||
* Patches added:
|
||||
linux-user-add-more-compat-ioctl-definit.patch
|
||||
linux-user-drop-conditionals-for-obsolet.patch
|
||||
linux-user-remove-conditionals-for-many-.patch
|
||||
meson-enforce-a-minimum-Linux-kernel-hea.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 4 11:07:14 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
- Improve the output of update_git.sh, by including the list of
|
||||
repos to which we have downstream patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 30 14:16:50 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
- Fix: bsc#1202665, CVE-2022-2962
|
||||
* Patches added:
|
||||
net-tulip-Restrict-DMA-engine-to-memorie.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 30 12:48:20 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
|
@ -189,6 +189,11 @@ Patch00026: Make-installed-scripts-explicitly-python.patch
|
||||
Patch00027: meson-install-ivshmem-client-and-ivshmem.patch
|
||||
Patch00028: meson-remove-pkgversion-from-CONFIG_STAM.patch
|
||||
Patch00029: linux-user-use-max-as-default-CPU-model-.patch
|
||||
Patch00030: net-tulip-Restrict-DMA-engine-to-memorie.patch
|
||||
Patch00031: linux-user-add-more-compat-ioctl-definit.patch
|
||||
Patch00032: linux-user-remove-conditionals-for-many-.patch
|
||||
Patch00033: meson-enforce-a-minimum-Linux-kernel-hea.patch
|
||||
Patch00034: linux-user-drop-conditionals-for-obsolet.patch
|
||||
# Patches applied in roms/seabios/:
|
||||
Patch01000: seabios-switch-to-python3-as-needed.patch
|
||||
Patch01001: enable-cross-compilation-on-ARM.patch
|
||||
|
@ -1069,6 +1069,19 @@ else # not LATEST
|
||||
echo "To modify package patches, use the frombundle branch as the basis for updating"
|
||||
echo "the $GIT_BRANCH branch with the new patch queue, e.g., like this:"
|
||||
echo " git checkout -f --recurse-submodules -B $GIT_BRANCH frombundle"
|
||||
echo "in the following repositories:"
|
||||
for R in $(grep "Patches applied" $PKG.spec | awk '{print $(NF)}'|sed 's/:$//'); do
|
||||
for (( i=0; i <$REPO_COUNT; i++ )); do
|
||||
if [ "${R}" = "project" ]; then
|
||||
echo " * ${LOCAL_REPO_MAP[0]}"
|
||||
continue 2
|
||||
fi
|
||||
if [ "${R}" = "${PATCH_PATH_MAP[$i]}" ]; then
|
||||
echo " * ${LOCAL_REPO_MAP[$i]}"
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
echo "Then make your changes and, when done, export them back to the package with:"
|
||||
echo " bash ./update_git.sh git2pkg"
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user