qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] ui: fix regression in x509verify parameter for


From: Gonglei
Subject: Re: [Qemu-devel] [PATCH] ui: fix regression in x509verify parameter for VNC server
Date: Wed, 11 Mar 2015 19:07:49 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

On 2015/3/11 17:45, Daniel P. Berrange wrote:
> On Wed, Mar 11, 2015 at 09:48:46AM +0800, Gonglei wrote:
>> On 2015/3/11 0:27, Daniel P. Berrange wrote:
>>> The 'x509verify' parameter is documented as taking a path to the
>>> x509 certificates, ie the same syntax as the 'x509' parameter.
>>>
>>>   commit 4db14629c38611061fc19ec6927405923de84f08
>>>   Author: Gerd Hoffmann <address@hidden>
>>>   Date:   Tue Sep 16 12:33:03 2014 +0200
>>>
>>>     vnc: switch to QemuOpts, allow multiple servers
>>>
>>> caused a regression by turning 'x509verify' into a boolean
>>> parameter instead. This breaks setup from libvirt and is not
>>> consistent with the docs.
>>>
>>> Signed-off-by: Daniel P. Berrange <address@hidden>
>>> ---
>>>  ui/vnc.c | 9 +++++++--
>>>  1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/ui/vnc.c b/ui/vnc.c
>>> index 10a2724..37290e7 100644
>>> --- a/ui/vnc.c
>>> +++ b/ui/vnc.c
>>> @@ -3304,7 +3304,7 @@ static QemuOptsList qemu_vnc_opts = {
>>>              .type = QEMU_OPT_BOOL,
>>>          },{
>>>              .name = "x509verify",
>>> -            .type = QEMU_OPT_BOOL,
>>> +            .type = QEMU_OPT_STRING,
>>>          },{
>>>              .name = "acl",
>>>              .type = QEMU_OPT_BOOL,
>>> @@ -3391,9 +3391,14 @@ void vnc_display_open(const char *id, Error **errp)
>>>  #ifdef CONFIG_VNC_TLS
>>>      tls  = qemu_opt_get_bool(opts, "tls", false);
>>>      path = qemu_opt_get(opts, "x509");
>>> +    if (!path) {
>>> +        path = qemu_opt_get(opts, "x509verify");
>>> +        if (path) {
>>> +            vs->tls.x509verify = true;
>>> +        }
>>> +    }
>>>      if (path) {
>>>          x509 = true;
>>> -        vs->tls.x509verify = qemu_opt_get_bool(opts, "x509verify", false);
>>
>> We still need to get the x509verify value, while both 'x509' and 'x509verify'
>> are configured, isn't it?
> 
> Err, the code 7 lines earlier gets the x509verify value. The x509 and 
> x509verify
> parameters are never to be specified at the same time - either one or the 
> other
> is used.
> 
I noticed that there are several places that check x509verify (or 
vs->tls.x509verify)
value:

./ui/vnc-auth-vencrypt.c:85:    if (vs->vd->tls.x509verify) {
./ui/vnc-tls.c:260:            if (vs->vd->tls.x509verify) {
./ui/vnc-tls.c:388:            if (vs->vd->tls.x509verify) {
./ui/vnc.c:3212:    vs->tls.x509verify = 0;
./ui/vnc.c:3306:            .name = "x509verify",
./ui/vnc.c:3396:        vs->tls.x509verify = qemu_opt_get_bool(opts, 
"x509verify", false);
./ui/vnc.c:3456:    if (acl && x509 && vs->tls.x509verify) {

If only 'x509' parameter is specified, can vnc-tls work after applying this 
patch?
Am I missing something?

Regards,
-Gonglei





reply via email to

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