qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list
Date: Wed, 10 Aug 2016 15:54:31 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Jeff Cody <address@hidden> writes:

> On Wed, Aug 10, 2016 at 09:42:04AM +0200, Markus Armbruster wrote:
>> Prasanna Kumar Kalever <address@hidden> writes:
>> 
>> > After introduction of qapi schema in gluster block driver code, the port
>> > type is now string as per InetSocketAddress
>> >
>> > { 'struct': 'InetSocketAddress',
>> >   'data': {
>> >     'host': 'str',
>> >     'port': 'str',
>> >     '*to': 'uint16',
>> >     '*ipv4': 'bool',
>> >     '*ipv6': 'bool' } }
>> >
>> > but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port
>> > to accept QEMU_OPT_STRING.
>> >
>> > Credits: Markus Armbruster <address@hidden>
>> 
>> Commonly written as
>> Suggested-by: Markus Armbruster <address@hidden>
>> 
>> > Signed-off-by: Prasanna Kumar Kalever <address@hidden>
>> > ---
>> >  block/gluster.c | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/block/gluster.c b/block/gluster.c
>> > index edde1ad..e6afa48 100644
>> > --- a/block/gluster.c
>> > +++ b/block/gluster.c
>> > @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = {
>> >          },
>> >          {
>> >              .name = GLUSTER_OPT_PORT,
>> > -            .type = QEMU_OPT_NUMBER,
>> > +            .type = QEMU_OPT_STRING,
>> >              .help = "port number on which glusterd is listening (default 
>> > 24007)",
>> >          },
>> >          {
>> 
>> The difference between QEMU_OPT_NUMBER and QEMU_OPT_STRING:
>> 
>> * The string value is stored for both.  For QEMU_OPT_NUMBER, we
>>   additionally parse the string as decimal number (this can fail,
>>   obviously), and store the result as uint64_t.  See qemu_opt_parse().
>> 
>> * qemu_opt_get() & friends return the stored string for both.
>> 
>> * qemu_opt_get_number() & friends require QEMU_OPT_NUMBER and return the
>>   stored number.
>> 
>> * qemu_opts_print() prints the stored string (with comma doubled) for
>>   QEMU_OPT_STRING, and the stored number for QEMU_OPT_NUMBER.
>> 
>> Your patch works, because:
>> 
>> * We get the value only with qemu_opt_get().  The only effect we get
>>   from QEMU_OPT_NUMBER is qemu_opt_parse() failure.
>> 
>> * "[PATCH v2 1/1] block/gluster: improve defense over string to int
>>   conversion" fixes the conversion port string to port number to detect
>>   errors.  With QEMU_OPT_NUMBER, this can't actually fail, because
>>   qemu_opt_parse() fails first.  With QEMU_OPT_STRING, it can.
>> 
>> The commit message should explain this.
>> 
>> I'd squash the two patches together, because a decent commit message for
>> the squash will probably be simpler than separate ones.
>
> Are these two patches intended for 2.7?

Back when I suggested this work, I had hoped it could still make 2.7 as
a followup fix, but 1. the bug has turned out to be merely latent , and
2. it's -rc3.  I guess we need to punt them to 2.8.



reply via email to

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