mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-24 14:41:08 +00:00
cpu: Fix crash with empty -cpu option
Fix the following crash: $ qemu-system-x86_64 -cpu '' qemu-system-x86_64: qom/cpu.c:291: cpu_class_by_name: \ Assertion `cpu_model && cc->class_by_name' failed. Regression test script included. Fixes: 99193d8f2ef5 ("cpu: drop unnecessary NULL check and cpu_common_class_by_name()") Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20190418034501.5038-1-ehabkost@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Tested-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
c1c8cfe5f9
commit
5b863f3e2f
4
exec.c
4
exec.c
@ -991,6 +991,10 @@ const char *parse_cpu_option(const char *cpu_option)
|
||||
const char *cpu_type;
|
||||
|
||||
model_pieces = g_strsplit(cpu_option, ",", 2);
|
||||
if (!model_pieces[0]) {
|
||||
error_report("-cpu option cannot be empty");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
oc = cpu_class_by_name(CPU_RESOLVING_TYPE, model_pieces[0]);
|
||||
if (oc == NULL) {
|
||||
|
19
tests/acceptance/empty_cpu_model.py
Normal file
19
tests/acceptance/empty_cpu_model.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Check for crash when using empty -cpu option
|
||||
#
|
||||
# Copyright (c) 2019 Red Hat, Inc.
|
||||
#
|
||||
# Author:
|
||||
# Eduardo Habkost <ehabkost@redhat.com>
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2 or
|
||||
# later. See the COPYING file in the top-level directory.
|
||||
import subprocess
|
||||
from avocado_qemu import Test
|
||||
|
||||
class EmptyCPUModel(Test):
|
||||
def test(self):
|
||||
cmd = [self.qemu_bin, '-S', '-display', 'none', '-machine', 'none', '-cpu', '']
|
||||
r = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
|
||||
self.assertEquals(r.returncode, 1, "QEMU exit code should be 1")
|
||||
self.assertEquals(r.stdout, b'', "QEMU stdout should be empty")
|
||||
self.assertNotEquals(r.stderr, b'', "QEMU stderr shouldn't be empty")
|
Loading…
x
Reference in New Issue
Block a user