qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH RFC v2 05/47] qapi: Reject -p arguments that bre


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH RFC v2 05/47] qapi: Reject -p arguments that break qapi-event.py
Date: Fri, 24 Jul 2015 13:41:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eric Blake <address@hidden> writes:

> On 07/01/2015 02:21 PM, Markus Armbruster wrote:
>> qapi-event.py breaks when you ask for a funny prefix like '@'.
>> Protect it.
>
> Only possible from the command line (not triggered by our makefiles);
> but doesn't hurt.
>
>> 
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>>  scripts/qapi.py | 6 ++++++
>>  1 file changed, 6 insertions(+)
>
>
>> 
>> diff --git a/scripts/qapi.py b/scripts/qapi.py
>> index 2bbc8ff..ea94ce5 100644
>> --- a/scripts/qapi.py
>> +++ b/scripts/qapi.py
>> @@ -1003,6 +1003,12 @@ def parse_command_line(extra_options = "", 
>> extra_long_options = []):
>>      for oa in opts:
>>          o, a = oa
>>          if o in ("-p", "--prefix"):
>> +            match = re.match('([A-Za-z_.-][A-Za-z0-9_.-]*)?', a)
>
> I can understand allowing a leading _, but why bother allowing a leading
> '.' or '-'?  Those will get normalized to _, but in all honesty, no one
> should ever be doing that.

My patch rejects exactly the prefixes that won't work.

> I'd be just as happy with the shorter:
>
> match = re.match('([A-Za-z_][A-Za-z0-9_.-]*)?', a)

This additionally rejects a few rather foolish ones.

I have a slight preference for the tool staying out of policing foolish
prefixes.

>> +            if match.end() != len(a):
>> +                print >>sys.stderr, \
>> +                    "%s: 'funny character '%s' in argument of -prefix" \
>
> 'qemu' is unusual for accepting -single-dash-long-opts; I don't think
> python getopts does the same by default.  Please spell this error
> message --prefix.

Typo, will fix.

>> +                    % (sys.argv[0], a[match.end()])
>> +                sys.exit(1)
>>              prefix = a
>>          elif o in ("-o", "--output-dir"):
>>              output_dir = a + "/"
>> 
>
> With the second spelling fix, and optionally with the shorter regex,
>
> Reviewed-by: Eric Blake <address@hidden>

Thanks!



reply via email to

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