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@xxxxxxxxxxxxxxxxxxxxx > > http://lists.freedesktop.org/mailman/listinfo/spice-devel > > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel