[Spice-devel] [PATCH 1/3] session: accept argument in URI without value

Victor Toso victortoso at redhat.com
Fri Feb 27 08:02:28 PST 2015


On Fri, Feb 27, 2015 at 10:42:35AM -0500, Marc-André Lureau wrote:
> ack

pushed as 2ff11ef4d2e20f0dba4950173c2c0be84deb5297

>
> ----- Original Message -----
> > The examples below should be considered valid URIs:
> > 
> > e.g: spice://localhost?port=5900&tls-port=
> > e.g: spice://localhost?tls-port=&port=5900
> > 
> > This patch deals with arguments with empty value;
> > ---
> >  gtk/spice-session.c | 20 ++++++++++++++++++--
> >  1 file changed, 18 insertions(+), 2 deletions(-)
> > 
> > diff --git a/gtk/spice-session.c b/gtk/spice-session.c
> > index 82ea55f..607224b 100644
> > --- a/gtk/spice-session.c
> > +++ b/gtk/spice-session.c
> > @@ -470,10 +470,26 @@ static int spice_parse_uri(SpiceSession *session, const
> > char *original_uri)
> >          gchar **target_key;
> >  
> >          int len;
> > -        if (sscanf(query, "%31[-a-zA-Z0-9]=%127[^;&]%n", key, value, &len)
> > != 2) {
> > -            g_warning("Failed to parse URI query '%s'", query);
> > +        if (sscanf(query, "%31[-a-zA-Z0-9]=%n", key, &len) != 1) {
> > +            spice_warning("Failed to parse key in URI '%s'", query);
> >              goto fail;
> >          }
> > +
> > +        query += len;
> > +        if (*query == '\0') {
> > +            spice_warning ("key '%s' without value", key);
> > +            break;
> > +        } else if (*query == ';' || *query == '&') {
> > +            /* another argument */
> > +            query++;
> > +            continue;
> > +        }
> > +
> > +        if (sscanf(query, "%127[^;&]%n", value, &len) != 1) {
> > +            spice_warning("Failed to parse value of key '%s' in URI '%s'",
> > key, query);
> > +            goto fail;
> > +        }
> > +
> >          query += len;
> >          if (*query)
> >              query++;
> > --
> > 2.1.0
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> > 


More information about the Spice-devel mailing list