QEMU main repository: Please see https://www.qemu.org/docs/master/devel/submitting-a-patch.html for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website. http://www.qemu.org
  • C 83.1%
  • C++ 6.1%
  • Python 3.4%
  • Dylan 2.7%
  • Shell 1.5%
  • Other 3%
Find a file
Stefan Hajnoczi 6333226c2a 9pfs changes:
- Fix O_TRUNC bypass on read-only export (CVE-2026-63318).
 
 - Fix guest-triggered Treaddir/ACPI eject UAF (#3937).
 
 - Tests: fix "slow" type test errors on certain host systems.
 
 - Tests: fix CID 1660926.
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEltjREM96+AhPiFkBNMK1h2Wkc5UFAmpkmGMXHHFlbXVfb3Nz
 QGNydWRlYnl0ZS5jb20ACgkQNMK1h2Wkc5U2txAAkY7pxVx4NoZYM/JGFuuAbHAY
 GQUYAqK4IxA0QpYdr047x53WISzRx5hq/xzJuh+OxKDLJ7nWm/lO08N05hpwtaER
 kBY95LT4dE3fbWVrUo9sC/GitUbvRqU8xiHFpnU9+c3ZSx2pZR3AzNLTFmPQveZ4
 68M7XN3EiCo8rmr9WDt4Rby+KDrfaJb1pUqpur0RxnS3qUukxgIbqXlFT5IY22sm
 eXNGs8FIhKNggfLosM4rdrGujs/NIqBVIWKR3c3Lm4OZhA72ZJjpqc61p1vhx8Gk
 bNtIGDD/LkmKrFBcTYWNuBmVh5MxPsG0ytH3L727P6wka/RKVHYHBBBsxsFaHePP
 8rU6Zh3d6VlY+8sbUY/tx261hFBX3o4IBxPlzRNnwWSHfBkjDFc/Lvl08LKOBjM9
 84HvcuhsdAY9OTUARdKKKAGKEjX3C4mfY6eWiG2AwjIg0DvbwHGlpu8AaUiCdDBk
 BU7SSIRrP7bHhVf1bhfu/GKHt8n7ETYTpMX/9xzEW/AXLjTtVg0w7fid9vtUZwhJ
 6JoWheQQZJD9NVUf8xu+mmeo3YZMZiWyv3B3WN42CYYzIDUTvHFY1ZvM936rxZ+Z
 o8u55CfiE7ddeYDKEsmDIi2pSFSvvtT0zZA1+hYYjjcmu3OzfANJn4r8sjEUepjf
 wLy/aY44R1EG5TXCCT4=
 =Fm7q
 -----END PGP SIGNATURE-----

Merge tag 'pull-9p-20260725' of https://github.com/cschoenebeck/qemu into staging

9pfs changes:

- Fix O_TRUNC bypass on read-only export (CVE-2026-63318).

- Fix guest-triggered Treaddir/ACPI eject UAF (#3937).

- Tests: fix "slow" type test errors on certain host systems.

- Tests: fix CID 1660926.

# -----BEGIN PGP SIGNATURE-----
#
# iQJLBAABCgA1FiEEltjREM96+AhPiFkBNMK1h2Wkc5UFAmpkmGMXHHFlbXVfb3Nz
# QGNydWRlYnl0ZS5jb20ACgkQNMK1h2Wkc5U2txAAkY7pxVx4NoZYM/JGFuuAbHAY
# GQUYAqK4IxA0QpYdr047x53WISzRx5hq/xzJuh+OxKDLJ7nWm/lO08N05hpwtaER
# kBY95LT4dE3fbWVrUo9sC/GitUbvRqU8xiHFpnU9+c3ZSx2pZR3AzNLTFmPQveZ4
# 68M7XN3EiCo8rmr9WDt4Rby+KDrfaJb1pUqpur0RxnS3qUukxgIbqXlFT5IY22sm
# eXNGs8FIhKNggfLosM4rdrGujs/NIqBVIWKR3c3Lm4OZhA72ZJjpqc61p1vhx8Gk
# bNtIGDD/LkmKrFBcTYWNuBmVh5MxPsG0ytH3L727P6wka/RKVHYHBBBsxsFaHePP
# 8rU6Zh3d6VlY+8sbUY/tx261hFBX3o4IBxPlzRNnwWSHfBkjDFc/Lvl08LKOBjM9
# 84HvcuhsdAY9OTUARdKKKAGKEjX3C4mfY6eWiG2AwjIg0DvbwHGlpu8AaUiCdDBk
# BU7SSIRrP7bHhVf1bhfu/GKHt8n7ETYTpMX/9xzEW/AXLjTtVg0w7fid9vtUZwhJ
# 6JoWheQQZJD9NVUf8xu+mmeo3YZMZiWyv3B3WN42CYYzIDUTvHFY1ZvM936rxZ+Z
# o8u55CfiE7ddeYDKEsmDIi2pSFSvvtT0zZA1+hYYjjcmu3OzfANJn4r8sjEUepjf
# wLy/aY44R1EG5TXCCT4=
# =Fm7q
# -----END PGP SIGNATURE-----
# gpg: Signature made Sat 25 Jul 2026 07:05:07 EDT
# gpg:                using RSA key 96D8D110CF7AF8084F88590134C2B58765A47395
# gpg:                issuer "qemu_oss@crudebyte.com"
# gpg: Good signature from "Christian Schoenebeck <qemu_oss@crudebyte.com>" [unknown]
# gpg: Note: This key has expired!
# Primary key fingerprint: ECAB 1A45 4014 1413 BA38  4926 30DB 47C3 A012 D5F4
#      Subkey fingerprint: 96D8 D110 CF7A F808 4F88  5901 34C2 B587 65A4 7395

* tag 'pull-9p-20260725' of https://github.com/cschoenebeck/qemu:
  hw/9pfs/xen: drain in-flight PDUs before xen-9p disconnect
  hw/9pfs/virtio: drain in-flight PDUs before virtio-9p unrealize
  hw/9pfs: fix O_TRUNC bypass on read-only export
  tests/9p: reduce xattr size to 1k
  tests/9p: prevent potential error in do_local_xattr_limit()

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2026-07-26 08:30:07 -04:00
.github/workflows
.gitlab/issue_templates
.gitlab-ci.d gitlab: remove gdb from MacOS jobs 2026-07-21 10:09:47 -04:00
accel accel/tcg: Make PageFlagsNodes' start and last immutable 2026-07-07 11:01:16 -07:00
audio
authz
backends Monitor patches for 2026-07-07 2026-07-07 19:17:41 +02:00
block block/curl: set User-Agent header 2026-07-23 18:03:24 +03:00
bsd-user common-user: Move guest_base, have_guest_base to probe-guest-base.c 2026-07-10 14:40:42 -07:00
chardev char-win-stdio: fix typo in spelling of 'stdio' 2026-07-23 18:03:24 +03:00
common-user common-user: Move guest_base, have_guest_base to probe-guest-base.c 2026-07-10 14:40:42 -07:00
configs
contrib contrib/plugins/dlcall: correct the syscall number claim, note the data model 2026-07-20 13:03:14 -07:00
crypto meson.build: re-add explicit gcrypt/nettle request check 2026-07-21 16:52:18 +01:00
disas
docs spelling: happend 2026-07-23 17:57:09 +03:00
dump
ebpf ebpf: fix swapped toeplitz/indirection args in set_data trace 2026-07-07 17:10:24 +02:00
fpu
fsdev
gdbstub monitor: pass chardev ID into monitor constructor instead of object 2026-07-07 11:16:23 +02:00
host/include
hw hw/9pfs/xen: drain in-flight PDUs before xen-9p disconnect 2026-07-25 12:35:25 +02:00
include Misc HW patches 2026-07-21 10:06:51 -04:00
io io/channel-socket: Document why we can ignore socket_set_cork() errors 2026-07-07 13:35:46 +01:00
libdecnumber
linux-headers linux-headers: Update to Linux v7.2-rc1 with KVM_S390_VM_CPU_FEAT_ASTFLEIE2 2026-07-06 13:37:54 +02:00
linux-user linux-user for v11.1 pull request 2026-07-20 11:12:20 -04:00
migration spelling: happend 2026-07-23 17:57:09 +03:00
monitor monitor: add support for auto-deleting monitors upon close 2026-07-07 11:16:27 +02:00
nbd
net net: Correct padding check in qemu_receive_packet() 2026-07-21 12:18:36 +02:00
pc-bios qemu-openbios queue 2026-07-08 16:01:29 +02:00
plugins
po
python tests: switch from -mon to -object monitor-qmp 2026-07-07 11:16:27 +02:00
pyvenv
qapi spelling: happend 2026-07-23 17:57:09 +03:00
qga
qobject json-parser: fix formatting of comment 2026-07-14 10:59:58 +02:00
qom qom: Fix device-list-properties & friends to show legacy-FOO props 2026-07-14 10:58:15 +02:00
replay replay: fix use of uninitialized pointer on error 2026-07-21 12:18:36 +02:00
roms Update OpenBIOS images to e5ac46dd built from submodule. 2026-07-07 22:07:16 +01:00
rust
scripts get_maintainer: add ability to report Git Lab handle 2026-07-21 16:53:12 +01:00
scsi
semihosting
stats
storage-daemon monitor: rename monitor_init* to monitor_new* 2026-07-07 11:16:23 +02:00
stubs monitor: implement "user creatable" interface for adding monitors 2026-07-07 11:16:25 +02:00
subprojects libvhost-user: look for available vq buffers upon SET_VRING_KICK 2026-07-04 05:03:47 -04:00
system docs: mark '-mon' as deprecated in favour of -object 2026-07-07 11:16:27 +02:00
target target/i386: helper_sysret(): Check that RCX contains a canonical address when emulating an Intel CPU 2026-07-21 18:04:36 +02:00
tcg tcg/loongarch64: Fix cmp_vec with TCG_COND_NE 2026-07-07 11:16:05 -07:00
tests tests/9p: reduce xattr size to 1k 2026-07-25 12:35:24 +02:00
tools monitor: drop unused monitor_cur_is_qmp 2026-07-07 11:16:25 +02:00
trace
ui ui/vnc: validate SetPixelFormat field ranges 2026-07-17 15:52:31 +04:00
util common-user: Move selfmap from util 2026-07-10 14:39:58 -07:00
.b4-config
.dir-locals.el
.editorconfig
.exrc
.gdbinit
.git-blame-ignore-revs
.gitattributes
.gitignore
.gitlab-ci.yml
.gitlab-map-auto gitlab: introduce files mapping GitLab accounts to real names 2026-07-21 16:52:25 +01:00
.gitlab-map-manual gitlab: introduce files mapping GitLab accounts to real names 2026-07-21 16:52:25 +01:00
.gitmodules
.gitpublish
.mailmap mailmap: add fix for Zhongyao Chen 2026-07-13 17:08:23 +01:00
.patchew.yml
.readthedocs.yml
.travis.yml
block.c
blockdev-nbd.c
blockdev.c
blockjob.c
clippy.toml
configure tests/docker: ensure container command is probed at most once 2026-07-16 10:49:11 -07:00
COPYING
COPYING.LIB
cpu-common.c cpu: Move cpu_breakpoint_test out of line 2026-07-06 15:42:18 +02:00
cpu-target.c cpu: Rename CPUState @singlestep_enabled -> @singlestep_flags 2026-07-06 15:42:18 +02:00
event-loop-base.c qom: replace 'can_be_deleted' with 'prepare_delete' 2026-07-07 11:16:22 +02:00
gitdm.config scripts/gitdm: migrate from contrib 2026-07-13 17:13:11 +01:00
hmp-commands-info.hx
hmp-commands.hx
iothread.c
job-qmp.c
job.c
Kconfig
Kconfig.host
LICENSE
MAINTAINERS MAINTAINERS: Add soc_dma to OMAP section 2026-07-20 19:05:30 +01:00
Makefile
meson.build * meson: propagate qemu_ldflags to Rust link step 2026-07-22 11:17:29 -04:00
meson_options.txt
module-common.c
os-posix.c
os-wasm.c
os-win32.c
page-vary-common.c
page-vary-system.c
pythondeps.toml
qemu-bridge-helper.c
qemu-edid.c
qemu-img-cmds.hx
qemu-img.c
qemu-io-cmds.c
qemu-io.c
qemu-keymap.c
qemu-nbd.c
qemu-options.hx MIPS and SuperH patches queue 2026-07-08 15:59:51 +02:00
qemu.nsi
qemu.sasl
README.rst
replication.c
run.in
target-info-qom.c
target-info-stub.c
target-info.c
trace-events cpu: Better name cpu_single_step() trace event 2026-07-06 15:42:18 +02:00
VERSION Update version for v11.1.0-rc1 release 2026-07-21 13:18:25 -04:00
version.rc

===========
QEMU README
===========

QEMU is a generic and open source machine & userspace emulator and
virtualizer.

QEMU is capable of emulating a complete machine in software without any
need for hardware virtualization support. By using dynamic translation,
it achieves very good performance. QEMU can also integrate with the Xen
and KVM hypervisors to provide emulated hardware while allowing the
hypervisor to manage the CPU. With hypervisor support, QEMU can achieve
near native performance for CPUs. When QEMU emulates CPUs directly it is
capable of running operating systems made for one machine (e.g. an ARMv7
board) on a different machine (e.g. an x86_64 PC board).

QEMU is also capable of providing userspace API virtualization for Linux
and BSD kernel interfaces. This allows binaries compiled against one
architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a
different architecture ABI (e.g. the Linux x86_64 ABI). This does not
involve any hardware emulation, simply CPU and syscall emulation.

QEMU aims to fit into a variety of use cases. It can be invoked directly
by users wishing to have full control over its behaviour and settings.
It also aims to facilitate integration into higher level management
layers, by providing a stable command line interface and monitor API.
It is commonly invoked indirectly via the libvirt library when using
open source applications such as oVirt, OpenStack and virt-manager.

QEMU as a whole is released under the GNU General Public License,
version 2. For full licensing details, consult the LICENSE file.


Documentation
=============

Documentation can be found hosted online at
`<https://www.qemu.org/documentation/>`_. The documentation for the
current development version that is available at
`<https://www.qemu.org/docs/master/>`_ is generated from the ``docs/``
folder in the source tree, and is built by `Sphinx
<https://www.sphinx-doc.org/en/master/>`_.


Building
========

QEMU is multi-platform software intended to be buildable on all modern
Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety
of other UNIX targets. The simple steps to build QEMU are:


.. code-block:: shell

  mkdir build
  cd build
  ../configure
  make

Additional information can also be found online via the QEMU website:

* `<https://wiki.qemu.org/Hosts/Linux>`_
* `<https://wiki.qemu.org/Hosts/Mac>`_
* `<https://wiki.qemu.org/Hosts/W32>`_


Submitting patches
==================

The QEMU source code is maintained under the GIT version control system.

.. code-block:: shell

   git clone https://gitlab.com/qemu-project/qemu.git

When submitting patches, one common approach is to use 'git
format-patch' and/or 'git send-email' to format & send the mail to the
qemu-devel@nongnu.org mailing list. All patches submitted must contain
a 'Signed-off-by' line from the author. Patches should follow the
guidelines set out in the `style section
<https://www.qemu.org/docs/master/devel/style.html>`_ of
the Developers Guide.

Additional information on submitting patches can be found online via
the QEMU website:

* `<https://wiki.qemu.org/Contribute/SubmitAPatch>`_
* `<https://wiki.qemu.org/Contribute/TrivialPatches>`_

The QEMU website is also maintained under source control.

.. code-block:: shell

  git clone https://gitlab.com/qemu-project/qemu-web.git

* `<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>`_

A 'git-publish' utility was created to make above process less
cumbersome, and is highly recommended for making regular contributions,
or even just for sending consecutive patch series revisions. It also
requires a working 'git send-email' setup, and by default doesn't
automate everything, so you may want to go through the above steps
manually for once.

For installation instructions, please go to:

*  `<https://github.com/stefanha/git-publish>`_

The workflow with 'git-publish' is:

.. code-block:: shell

  $ git checkout master -b my-feature
  $ # work on new commits, add your 'Signed-off-by' lines to each
  $ git publish

Your patch series will be sent and tagged as my-feature-v1 if you need to refer
back to it in the future.

Sending v2:

.. code-block:: shell

  $ git checkout my-feature # same topic branch
  $ # making changes to the commits (using 'git rebase', for example)
  $ git publish

Your patch series will be sent with 'v2' tag in the subject and the git tip
will be tagged as my-feature-v2.

Bug reporting
=============

The QEMU project uses GitLab issues to track bugs. Bugs
found when running code built from QEMU git or upstream released sources
should be reported via:

* `<https://gitlab.com/qemu-project/qemu/-/issues>`_

If using QEMU via an operating system vendor pre-built binary package, it
is preferable to report bugs to the vendor's own bug tracker first. If
the bug is also known to affect latest upstream code, it can also be
reported via GitLab.

For additional information on bug reporting consult:

* `<https://wiki.qemu.org/Contribute/ReportABug>`_


ChangeLog
=========

For version history and release notes, please visit
`<https://wiki.qemu.org/ChangeLog/>`_ or look at the git history for
more detailed information.


Contact
=======

The QEMU community can be contacted in a number of ways, with the two
main methods being email and IRC:

* `<mailto:qemu-devel@nongnu.org>`_
* `<https://lists.nongnu.org/mailman/listinfo/qemu-devel>`_
* #qemu on irc.oftc.net

Information on additional methods of contacting the community can be
found online via the QEMU website:

* `<https://wiki.qemu.org/Contribute/StartHere>`_