- 17 3月, 2017 5 次提交
-
-
由 Greg Kurz 提交于
This patch opens the shared folder and caches the file descriptor, so that it can be used to do symlink-safe path walk. Signed-off-by: NGreg Kurz <groug@kaod.org> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 0e35a378) Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
-
由 Greg Kurz 提交于
When using the passthrough security mode, symbolic links created by the guest are actual symbolic links on the host file system. Since the resolution of symbolic links during path walk is supposed to occur on the client side. The server should hence never receive any path pointing to an actual symbolic link. This isn't guaranteed by the protocol though, and malicious code in the guest can trick the server to issue various syscalls on paths whose one or more elements are symbolic links. In the case of the "local" backend using the "passthrough" or "none" security modes, the guest can directly create symbolic links to arbitrary locations on the host (as per spec). The "mapped-xattr" and "mapped-file" security modes are also affected to a lesser extent as they require some help from an external entity to create actual symbolic links on the host, i.e. another guest using "passthrough" mode for example. The current code hence relies on O_NOFOLLOW and "l*()" variants of system calls. Unfortunately, this only applies to the rightmost path component. A guest could maliciously replace any component in a trusted path with a symbolic link. This could allow any guest to escape a virtfs shared folder. This patch introduces a variant of the openat() syscall that successively opens each path element with O_NOFOLLOW. When passing a file descriptor pointing to a trusted directory, one is guaranteed to be returned a file descriptor pointing to a path which is beneath the trusted directory. This will be used by subsequent patches to implement symlink-safe path walk for any access to the backend. Symbolic links aren't the only threats actually: a malicious guest could change a path element to point to other types of file with undesirable effects: - a named pipe or any other thing that would cause openat() to block - a terminal device which would become QEMU's controlling terminal These issues can be addressed with O_NONBLOCK and O_NOCTTY. Two helpers are introduced: one to open intermediate path elements and one to open the rightmost path element. Suggested-by: NJann Horn <jannh@google.com> Signed-off-by: NGreg Kurz <groug@kaod.org> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> (renamed openat_nofollow() to relative_openat_nofollow(), assert path is relative and doesn't contain '//', fixed side-effect in assert, Greg Kurz) Signed-off-by: NGreg Kurz <groug@kaod.org> (cherry picked from commit 6482a961) Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
-
由 Greg Kurz 提交于
If these functions fail, they should not change *fs. Let's use local variables to fix this. Signed-off-by: NGreg Kurz <groug@kaod.org> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 21328e1e) Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
-
由 Greg Kurz 提交于
If this function fails, it should not modify *ctx. Signed-off-by: NGreg Kurz <groug@kaod.org> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 00c90bd1) Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
-
由 Greg Kurz 提交于
These functions are always called indirectly. It really doesn't make sense for them to sit in a header file. Signed-off-by: NGreg Kurz <groug@kaod.org> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> (cherry picked from commit 56fc494b) Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
-
- 21 12月, 2016 1 次提交
-
-
由 Stefan Hajnoczi 提交于
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
- 15 12月, 2016 4 次提交
-
-
由 Stefan Hajnoczi 提交于
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Maxime Coquelin 提交于
This patch fixes a cross-version migration regression introduced by commit d1b4259f ("virtio-bus: Plug devices after features are negotiated"). The problem is encountered when host's vhost backend does not support VIRTIO_F_VERSION_1, and migration is initiated from a v2.7 or prior machine with virtio-pci modern capabilities enabled to a v2.8 machine. In this case, modern capabilities get exposed to the guest by the source, whereas the target will detect version 1 is not supported so will only expose legacy capabilities. The problem is fixed by introducing a new "x-ignore-backend-features" property, which is set in v2.7 and prior compatibility modes. Doing this, v2.7 machine keeps its broken behaviour (enabling modern while version is not supported), and newer machines will behave correctly. Reported-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NMichael S. Tsirkin <mst@redhat.com> Tested-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: NMaxime Coquelin <maxime.coquelin@redhat.com> Message-id: 20161214163035.3297-1-maxime.coquelin@redhat.com Suggested-by: NStefan Hajnoczi <stefanha@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Tested-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: NMaxime Coquelin <maxime.coquelin@redhat.com> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
There are missing translations for the new "Copy" menu item. The following people provided them to me on IRC just in time for the QEMU 2.8 release: * de_DE - Stefan Hajnoczi <stefanha@redhat.com> * fr_FR - Laurent Vivier <laurent@vivier.eu> * it - Pino Toscano <ptoscano@redhat.com> * zh_CN - Fam Zheng <famz@redhat.com> [Removed spurious space in zh_CN "Copy" translation that Fam Zheng pointed out. --Stefan] Reported-by: NKevin Wolf <kwolf@redhat.com> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com> Message-id: 20161214144713.11009-1-stefanha@redhat.com Cc: Fam Zheng <famz@redhat.com> Cc: Pino Toscano <ptoscano@redhat.com> Cc: Laurent Vivier <laurent@vivier.eu> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
The "Copy" menu item copies VTE terminal text to the clipboard. This only works with VTE terminals, not with graphics consoles. Disable the menu item when the current notebook page isn't a VTE terminal. This patch fixes a segfault. Reproducer: Start QEMU and click the Copy menu item when the guest display is visible. Reported-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NGerd Hoffmann <kraxel@redhat.com> Tested-by: NStefan Weil <sw@weilnetz.de> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com> Message-id: 20161214142518.10504-1-stefanha@redhat.com Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
- 14 12月, 2016 1 次提交
-
-
由 Stefan Hajnoczi 提交于
Update translation files (change created via 'make -C po update'). Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NStefan Weil <sw@weilnetz.de> Message-id: 20161213214917.6436-1-stefanha@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
- 07 12月, 2016 6 次提交
-
-
由 Stefan Hajnoczi 提交于
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Eric Blake 提交于
We intentionally renamed 'debug-level' to 'debug' in the QMP schema for 'blockdev-add' related to gluster, in order to match the command line (commit 1a417e46). However, since 'debug-level' was visible in 2.7, that means that we should document that 'debug' was not available until 2.8. The change was intentional because 'blockdev-add' itself underwent incompatible changes (such as commit 0153d2f5) for the same release; our intent is that after 2.8, these interfaces will now be stable. [In hindsight, we should have used the name x-blockdev-add when we first introduced it] Signed-off-by: NEric Blake <eblake@redhat.com> Message-id: 20161206182020.25736-1-eblake@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Peter Maydell 提交于
A bug (1647683) was reported showing a crash when removing breakpoints. The reproducer was bisected to 3359baad when tb_flush was finally made thread safe. While in MTTCG the locking in breakpoint_invalidate would have prevented any problems, but currently tb_lock() is a NOP for system emulation. The race is between a tb_flush from the gdbstub and the tb_invalidate_phys_addr() in breakpoint_invalidate(). Ideally we'd have actual locking here; for the moment the simple fix is to do a full tb_flush() for a bp invalidate, since that is thread-safe even if no lock is taken. Reported-by: NJulian Brown <julian@codesourcery.com> Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Message-id: 1481047629-7763-1-git-send-email-peter.maydell@linaro.org Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Eric Blake 提交于
Commit 2d76e724 failed to add a versioning tag to 'id'. I audited all qapi*.json files from v2.7.0 to the current state of the tree, and didn't find any other additions where we failed to use a version tag. Signed-off-by: NEric Blake <eblake@redhat.com> Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20161206160345.22425-1-eblake@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Changlong Xie 提交于
[Lin Ma <lma@suse.com> notes that commit ea3af47d added test for chardev unit tests, but didn't add the name of generated binary in .gitignore. --Stefan] Signed-off-by: NChanglong Xie <xiecl.fnst@cn.fujitsu.com> Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Message-id: 1478494765-13233-1-git-send-email-xiecl.fnst@cn.fujitsu.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
Block layer patches for 2.8.0-rc3 # gpg: Signature made Tue 06 Dec 2016 02:44:39 PM GMT # gpg: using RSA key 0x7F09B272C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" # Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6 * kwolf/tags/for-upstream: qcow2: Don't strand clusters near 2G intervals during commit Message-id: 1481037418-10239-1-git-send-email-kwolf@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
- 06 12月, 2016 20 次提交
-
-
由 Eric Blake 提交于
The qcow2_make_empty() function is reached during 'qemu-img commit', in order to clear out ALL clusters of an image. However, if the image cannot use the fast code path (true if the image is format 0.10, or if the image contains a snapshot), the cluster size is larger than 512, and the image is larger than 2G in size, then our choice of sector_step causes problems. Since it is not cluster aligned, but qcow2_discard_clusters() silently ignores an unaligned head or tail, we are leaving clusters allocated. Enhance the testsuite to expose the flaw, and patch the problem by ensuring our step size is aligned. Signed-off-by: NEric Blake <eblake@redhat.com> Reviewed-by: NJohn Snow <jsnow@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Stefan Hajnoczi 提交于
# gpg: Signature made Tue 06 Dec 2016 02:24:23 AM GMT # gpg: using RSA key 0xEF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * jasowang/tags/net-pull-request: fsl_etsec: Fix various small problems in hexdump code fsl_etsec: Pad short payloads with zeros net: mcf: check receive buffer size register value Message-id: 1480991552-14360-1-git-send-email-jasowang@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
# gpg: Signature made Mon 05 Dec 2016 09:30:45 PM GMT # gpg: using RSA key 0xBDBE7B27C0DE3057 # gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>" # gpg: aka "Jeffrey Cody <jeff@codyprime.org>" # gpg: aka "Jeffrey Cody <codyprime@gmail.com>" # Primary key fingerprint: 9957 4B4D 3474 90E7 9D98 D624 BDBE 7B27 C0DE 3057 * jtc/tags/block-pull-request: qemu-doc: update gluster protocol usage guide block/nfs: fix QMP to match debug option block/gluster: fix QMP to match debug option Message-id: 1480973521-28945-1-git-send-email-jcody@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
target-arm queue: * fix gen_load_exclusive handling of ldaxp # gpg: Signature made Mon 05 Dec 2016 05:57:51 PM GMT # gpg: using RSA key 0x3C2525ED14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" # gpg: aka "Peter Maydell <pmaydell@gmail.com>" # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * pm215/tags/pull-target-arm-20161205: target-arm/translate-a64: fix gen_load_exclusive Message-id: 1480960775-5002-1-git-send-email-peter.maydell@linaro.org Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
QAPI patches for 2016-12-05 # gpg: Signature made Mon 05 Dec 2016 04:41:53 PM GMT # gpg: using RSA key 0x3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * armbru/tags/pull-qapi-2016-12-05: qapi: add missing colon-ending for section name qapi: use one symbol per line qapi: fix various symbols mismatch in documentation qapi: fix missing symbol @prefix qapi: fix schema symbol sections qga/schema: fix double-return in doc tests: Avoid qobject_from_jsonf("%"PRId64) test-qga: Avoid qobject_from_jsonv("%"PRId64) qmp-event: Avoid qobject_from_jsonf("%"PRId64) Message-id: 1480956313-31322-1-git-send-email-armbru@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
qxl: fix flickering. cirrus: avoid devision by zero. virtio-gpu: fix two leaks. # gpg: Signature made Mon 05 Dec 2016 10:55:45 AM GMT # gpg: using RSA key 0x4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * kraxel/tags/pull-vga-20161205-1: display: cirrus: check vga bits per pixel(bpp) value virtio-gpu: fix memory leak in update_cursor_data_virgl virtio-gpu: fix information leak in getting capset info dispatch qxl: Only emit QXL_INTERRUPT_CLIENT_MONITORS_CONFIG on config changes Message-id: 1480935840-3961-1-git-send-email-kraxel@redhat.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Andrey Smirnov 提交于
Fix various small problems in hexdump code, such as: - Reference to non-existing field etsec->nic->nc.name is replaced with nc->name - Type mismatch warnings Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: NJason Wang <jasowang@redhat.com>
-
由 Prasanna Kumar Kalever 提交于
Document: 1. The new debug and logfile options with their usages 2. New json format and its usage and 3. update "GlusterFS, Device URL Syntax" section in "Invocation" Signed-off-by: NPrasanna Kumar Kalever <prasanna.kalever@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NJeff Cody <jcody@redhat.com>
-
由 Prasanna Kumar Kalever 提交于
The QMP definition of BlockdevOptionsNfs: { 'struct': 'BlockdevOptionsNfs', 'data': { 'server': 'NFSServer', 'path': 'str', '*user': 'int', '*group': 'int', '*tcp-syn-count': 'int', '*readahead-size': 'int', '*page-cache-size': 'int', '*debug-level': 'int' } } To make this consistent with other block protocols like gluster, lets change s/debug-level/debug/ Suggested-by: NEric Blake <eblake@redhat.com> Signed-off-by: NPrasanna Kumar Kalever <prasanna.kalever@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NJeff Cody <jcody@redhat.com>
-
由 Prasanna Kumar Kalever 提交于
The QMP definition of BlockdevOptionsGluster: { 'struct': 'BlockdevOptionsGluster', 'data': { 'volume': 'str', 'path': 'str', 'server': ['GlusterServer'], '*debug-level': 'int', '*logfile': 'str' } } But instead of 'debug-level we have exported 'debug' as the option for choosing debug level of gluster protocol driver. This patch fix QMP definition BlockdevOptionsGluster s/debug-level/debug/ Suggested-by: NEric Blake <eblake@redhat.com> Signed-off-by: NPrasanna Kumar Kalever <prasanna.kalever@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NJeff Cody <jcody@redhat.com>
-
由 Alex Bennée 提交于
While testing rth's latest TCG patches with risu I found ldaxp was broken. Investigating further I found it was broken by 1dd089d0 when the cmpxchg atomic work was merged. As part of that change the code attempted to be clever by doing a single 64 bit load and then shuffle the data around to set the two 32 bit registers. As I couldn't quite follow the endian magic I've simply partially reverted the change to the original code gen_load_exclusive code. This doesn't affect the cmpxchg functionality as that is all done on in gen_store_exclusive part which is untouched. I've also restored the comment that was removed (with a slight tweak to mention cmpxchg). Signed-off-by: NAlex Bennée <alex.bennee@linaro.org> Acked-by: NRichard Henderson <rth@twiddle.net> Message-id: 20161202173454.19179-1-alex.bennee@linaro.org Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
-
由 Marc-André Lureau 提交于
The documentation parser we are going to add expects a section name to end with ':', otherwise the comment is treated as free-form text body. Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20161117155504.21843-9-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Marc-André Lureau 提交于
The documentation parser we are going to add only handles a single symbol per line. Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20161117155504.21843-8-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Marc-André Lureau 提交于
There are various mismatch: - invalid symbols - section and member symbols mismatch - enum or union values vs 'type' The documentation parser catches all these cases. Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20161117155504.21843-7-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Marc-André Lureau 提交于
Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Message-Id: <20161117155504.21843-6-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Marc-André Lureau 提交于
According to docs/qapi-code-gen.txt, there needs to be '##' to start a and end a symbol section, that's also what the documentation parser expects. Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Message-Id: <20161117155504.21843-5-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Marc-André Lureau 提交于
guest-get-memory-block-info documentation should have only one "Returns:". Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Message-Id: <20161117155504.21843-3-marcandre.lureau@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Eric Blake 提交于
The qobject_from_jsonf() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to force the use of int (where the value is small enough) or long long instead of int64_t, which we know always works. This should cover all remaining testsuite uses of qobject_from_json[fv]() that were trying to rely on PRId64, although my proof for that was done by adding in asserts and checking that 'make check' still passed, where such asserts are inappropriate during hard freeze. A later series in 2.9 may remove all dynamic JSON parsing, but that's a bigger task. Reported by: G 3 <programmingkidx@gmail.com> Signed-off-by: NEric Blake <eblake@redhat.com> Message-Id: <1479922617-4400-4-git-send-email-eblake@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> [Rename value64 to value_ll] Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Eric Blake 提交于
The qobject_from_jsonv() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to use normal printf() for this particular conversion, matching what is done elsewhere in this file [1], which is safe in this instance because the format does not contain any of the problematic differences (bare '%' or the '%s' format). The use of PRId64 for a variable named 'pid' is gross, but it is a sad reality of the 64-bit mingw environment, which mistakenly defines pid_t as a 64-bit type even though getpid() returns 'int' on that platform [2]. Our definition of the QGA GuestExec type defines 'pid' as a 64-bit entity, and we can't tighten it to 'int32' unless the mingw header is fixed. Using 'long long' instead of 'int64_t' just so that we can stick with qobject_from_jsonv("%lld") instead of printf() is not any prettier, since we may have later type churn anyways. [1] see 'git grep -A2 strdup_printf tests/test-qga.c' [2] https://bugzilla.redhat.com/show_bug.cgi?id=1397787 Reported by: G 3 <programmingkidx@gmail.com> Signed-off-by: NEric Blake <eblake@redhat.com> Message-Id: <1479922617-4400-3-git-send-email-eblake@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
由 Eric Blake 提交于
The qobject_from_jsonf() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to use 'long long', which we know always works. There are few enough callers of qobject_from_json[fv]() that it is easy to audit that this is the only non-testsuite caller that was actually relying on this particular conversion. Reported by: G 3 <programmingkidx@gmail.com> Signed-off-by: NEric Blake <eblake@redhat.com> Message-Id: <1479922617-4400-2-git-send-email-eblake@redhat.com> Reviewed-by: NMarkus Armbruster <armbru@redhat.com> [Cast tv.tv_sec, tv.tv_usec to long long for type correctness] Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
-
- 05 12月, 2016 3 次提交
-
-
由 Stefan Hajnoczi 提交于
MIPS patches 2016-12-04 Changes: * Fix Loongson instructions * Fix bad shifts in {dextp|dextpdp} # gpg: Signature made Sun 04 Dec 2016 01:39:38 AM GMT # gpg: using RSA key 0x2238EB86D5F797C2 # gpg: Can't check signature: public key not found * yongbok/tags/mips-20161204: target-mips: fix bad shifts in {dextp|dextpdp} target-mips: Fix Loongson multimedia instructions. target-mips: Fix Loongson multimedia 'or' instruction. target-mips: Fix Loongson pandn instruction. Message-id: 1480816817-53245-1-git-send-email-yongbok.kim@imgtec.com Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Prasad J Pandit 提交于
In Cirrus CLGD 54xx VGA Emulator, if cirrus graphics mode is VGA, 'cirrus_get_bpp' returns zero(0), which could lead to a divide by zero error in while copying pixel data. The same could occur via blit pitch values. Add check to avoid it. Reported-by: NHuawei PSIRT <psirt@huawei.com> Signed-off-by: NPrasad J Pandit <pjp@fedoraproject.org> Message-id: 1476776717-24807-1-git-send-email-ppandit@redhat.com Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
-
由 Andrey Smirnov 提交于
Depending on QEMU network setup it is possible for us to receive a complete Ethernet packet that is less 64 bytes long. One such example is when QEMU is configured to use a standalone TAP device (not set to be a part of any bridge) receives and ARP packet. In cases like that we need to add more than just 4-bytes of CRC padding and ensure that our payload is at least 60 bytes long, such that, when combined with CRC padding bytes the resulting size is at least 802.3 minimum MTU bytes long (64). Failing to do that results in code in etsec_walk_rx_ring() setting BD_RX_SH which, in turn, makes corresponding Linux driver of emulated host to reject buffer as a runt packet Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: NJason Wang <jasowang@redhat.com>
-