qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] fix '-cpu ?' Segfault


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH] fix '-cpu ?' Segfault
Date: Thu, 22 Mar 2012 11:05:15 -0300
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Mar 22, 2012 at 02:46:48PM +0100, Andreas Färber wrote:
> Am 22.03.2012 14:28, schrieb Stefan Berger:
> > On 03/21/2012 08:33 AM, Eduardo Habkost wrote:
> >> Fix stupid copy&paste mistake at commit
> >> ecf40beae7dcbb057d4f115207f9d8276832a774: I moved code around but kept
> >> "optarg" on the cpu_list() call.
> >>
> >> Reported-by: Jiri Denemark<address@hidden>
> >> Signed-off-by: Eduardo Habkost<address@hidden>
> >> ---
> >>   vl.c |    2 +-
> >>   1 files changed, 1 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/vl.c b/vl.c
> >> index 112b0e0..0fccf50 100644
> >> --- a/vl.c
> >> +++ b/vl.c
> >> @@ -3196,7 +3196,7 @@ int main(int argc, char **argv, char **envp)
> >>       cpudef_init();
> >>
> >>       if (cpu_model&&  *cpu_model == '?') {
> >> -        list_cpus(stdout,&fprintf, optarg);
> >> +        list_cpus(stdout,&fprintf, cpu_model);
> >>           exit(0);
> >>       }
> >>
> > Does -cpu ? actually work then? I only see the list of cpus when using
> > -cpu ?_ for example.
> 
> You're right, it should be cpu_model + 1 from what I recall, i.e. just
> the optional argument, not the whole model string.

No, list_cpus() expects the whole argument string, including the leading "?":

void list_cpus(FILE *f, fprintf_function cpu_fprintf, const char *optarg)
{
    /* XXX: implement xxx_cpu_list for targets that still miss it */
#if defined(cpu_list_id)
    cpu_list_id(f, cpu_fprintf, optarg);
#elif defined(cpu_list)
    cpu_list(f, cpu_fprintf); /* deprecated */
#endif
}

[...]

#define cpu_list_id x86_cpu_list

[...]

void x86_cpu_list(FILE *f, fprintf_function cpu_fprintf, const char *optarg)
{
    unsigned char model = !strcmp("?model", optarg);
    unsigned char dump = !strcmp("?dump", optarg);
    unsigned char cpuid = !strcmp("?cpuid", optarg);
[...]

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]