qemu/linux-user-lseek-explicitly-cast-non-set.patch
Dario Faggioli d58941a9c7 Accepting request 1006734 from home:dfaggioli:devel:Virtualization
- Runs of the test-suite seem much more stable now, in this version
  of QEMU. (bsc#1203610) We are also fine re-enabling running them
  in parallel.
- Switch QEMU Linux user to emulate the same CPU as the one of the
  host by default. This is a bit conrtoversial and tricky, when
  thinking about system emulation/virtualization. But for linux-user,
  it should be just fine. (bsc#1203684)
* Patches added:
  linux-user-use-max-as-default-CPU-model-.patch
- Be less verbose when packaging documentation. In fact, with just
  a couple of (minor) re-arrangements, we can get rid of having to
  list all the files all the time
- Package /etc/qemu/bridge.conf as '%config(noreplace). Next step
  will probably be to move it to /usr/etc/qemu (bsc#1201944)
- Switch to %autosetup for all products (this required some changes
  in update_git.sh)
- Run check-qtest sequentially, as it's more reliable, when in OBS
- Build with libbpf, fdt and capstone support
- Drop the patch adding our support document, and deal with that
  in the spec file directly
* Patches dropped:
  doc-add-our-support-doc-to-the-main-proj.patch
- Updated to latest upstream version 7.1
  * https://wiki.qemu.org/ChangeLog/7.1
  Be sure to also check the following pages:
  * https://qemu-project.gitlab.io/qemu/about/removed-features.html
  * https://qemu-project.gitlab.io/qemu/about/deprecated.html
  Some notable changes:
  * [x86] Support for architectural LBRs on KVM virtual machines
  * [x86] The libopcode-based disassembler has been removed. Use
          Capstone instead
  * [LoongArch] Add initial support for the LoongArch64 architecture.
  * [ARM] The emulated SMMUv3 now advertises support for SMMUv3.2-BBML2
  * [ARM] The xlnx-zynqmp SoC model now implements the 4 TTC timers
  * [ARM] The versal machine now models the Cortex-R5s in the Real-Time
          Processing Unit (RPU) subsystem
  * [ARM] The virt board now supports emulation of the GICv4.0
  * [ARM] New emulated CPU types: Cortex-A76, Neoverse-N1
  * [HPPA] Fix serial port pass-through from host to guest
  * [HPPA] Lots of general code improvements and tidy-ups
  * [RISC-V] RISC-V
  * [RISC-V] Add support for privileged spec version 1.12.0
  * [RISC-V] Use privileged spec version 1.12.0 for virt machine by default
  * [RISC-V] Allow software access to MIP SEIP
  * [RISC-V] Add initial support for the Sdtrig extension
  * [RISC-V] Optimisations and improvements for the vector extension
  * [VFIO] Experimental support for exposing emulated PCI devices over the
           new vfio-user protocol (a vfio-user client is not yet available
           in QEMU, though)
  * [QMP] The on-cbw-error option for copy-before-write filter, to specify
           behavior on CBW (copy before write) operation failure.
  * [QMP] The cbw-timeout option for copy-before-write filter, to specify
          timeout for CBW operation.
  * [QMP] New commands query-stats and query-stats-schema to retrieve
          statistics from various QEMU subsystems (right now only from
          KVM).
  * [QMP] The PanicAction can now be configured to report an exit-failure
          (useful for automated testing)
  * [Networking] QEMU can be compiled with the system slirp library even
                 when using CFI. This requires libslirp 4.7.
  * [Migration] Support for zero-copy-send on Linux, which reduces CPU
                usage on the source host. Note that locked memory is needed
                to support this
* Patches added:
  Revert-tests-qtest-enable-more-vhost-use.patch
  meson-remove-pkgversion-from-CONFIG_STAM.patch
* Patches dropped:
  AIO-Reduce-number-of-threads-for-32bit-h.patch
  Makefile-Don-t-check-pc-bios-as-pre-requ.patch
  Revert-8dcb404bff6d9147765d7dd3e9c849337.patch
  Revert-qht-constify-qht_statistics_init.patch
  XXX-dont-dump-core-on-sigabort.patch
  acpi_piix4-Fix-migration-from-SLE11-SP2.patch
  configure-only-populate-roms-if-softmmu.patch
  configure-remove-pkgversion-from-CONFIG_.patch
  coroutine-ucontext-use-QEMU_DEFINE_STATI.patch
  coroutine-use-QEMU_DEFINE_STATIC_CO_TLS.patch
  coroutine-win32-use-QEMU_DEFINE_STATIC_C.patch
  hostmem-default-the-amount-of-prealloc-t.patch
  hw-usb-hcd-ehci-fix-writeback-order.patch
  i8254-Fix-migration-from-SLE11-SP2.patch
  intc-exynos4210_gic-replace-snprintf-wit.patch
  modules-generates-per-target-modinfo.patch
  modules-introduces-module_kconfig-direct.patch
  pc-bios-s390-ccw-net-avoid-warning-about.patch
  pci-fix-overflow-in-snprintf-string-form.patch
  qemu-cvs-gettimeofday.patch
  qemu-cvs-ioctl_debug.patch
  qemu-cvs-ioctl_nodirection.patch
  qht-Revert-some-constification-in-qht.c.patch
  qom-handle-case-of-chardev-spice-module-.patch
  scsi-lsi53c895a-fix-use-after-free-in-ls.patch
  scsi-lsi53c895a-really-fix-use-after-fre.patch
  softmmu-Always-initialize-xlat-in-addres.patch
  sphinx-change-default-language-to-en.patch
  test-add-mapping-from-arch-of-i686-to-qe.patch
  tests-Fix-block-tests-to-be-compatible-w.patch
  tests-qtest-Move-the-fuzz-tests-to-x86-o.patch
  usb-Help-compiler-out-to-avoid-a-warning.patch

OBS-URL: https://build.opensuse.org/request/show/1006734
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=732
2022-09-29 06:46:40 +00:00

37 lines
1.3 KiB
Diff

From: Alexander Graf <agraf@suse.de>
Date: Thu, 13 Dec 2012 14:29:22 +0100
Subject: linux-user: lseek: explicitly cast non-set offsets to signed
When doing lseek, SEEK_SET indicates that the offset is an unsigned variable.
Other seek types have parameters that can be negative.
When converting from 32bit to 64bit parameters, we need to take this into
account and enable SEEK_END and SEEK_CUR to be negative, while SEEK_SET stays
absolute positioned which we need to maintain as unsigned.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index de782620fe3c9169a58e442a6f05..9d92e56e3996dc2174a4af9d0491 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8936,8 +8936,13 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_ulong arg1,
return ret;
#endif
#ifdef TARGET_NR_lseek
- case TARGET_NR_lseek:
- return get_errno(lseek(arg1, arg2, arg3));
+ case TARGET_NR_lseek: {
+ off_t off = arg2;
+ if (arg3 != SEEK_SET) {
+ off = (abi_long)arg2;
+ }
+ return get_errno(lseek(arg1, off, arg3));
+ }
#endif
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
/* Alpha specific */