[Spice-devel] [PATCH spice-gtk 3/4] util: add unix2dos and dos2unix

Marc-André Lureau mlureau at redhat.com
Sat Aug 24 05:56:49 PDT 2013



----- Mensaje original -----
> Hi,
> 
> On 08/24/2013 02:32 PM, Marc-André Lureau wrote:
> >
> >
> > ----- Mensaje original -----
> >> Hi,
> >>
> >> On 08/24/2013 02:17 PM, Marc-André Lureau wrote:
> >>
> >> <snip>
> >>
> >>>>> +
> >>>>> +    if (!g_utf8_validate(str, len, NULL)) {
> >>>>> +        g_set_error_literal(error, G_CONVERT_ERROR,
> >>>>> +                            G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
> >>>>> +                            "Invalid byte sequence in conversion
> >>>>> input");
> >>>>> +        return -1;
> >>>>> +    }
> >>>>
> >>>>
> >>>> And once you simply treat this as a regular C-string without worrying
> >>>> about multi-byte encodings you can also drop this.
> >>>
> >>> Actually, during implementation, I have encountered/produced invalid
> >>> utf8 that will break later on in gtk+, so I prefer to validate the
> >>> production.
> >>
> >> Thinking more about this, if we want to do utf-8 validation, it should not
> >> be done here, but rather in gtk/channel-main.c, since this code only gets
> >> called in certain guest-line-end + direction cases, and if we want to do
> >> utf-8 validation we should always do it.
> >
> > Perhaps, although the difference is that here we do parse/modify the
> > string,
> > so it's important to check we don't produce garbage.
> 
> Right, but since garbage in = garbage out, you're not only checking that
> the conversion code did not foo-bar, you're also validating the original
> input,
> at which point it makes sense to me to always do that even when not doing
> conversion.

In one case, it's a pass-through, the caller and the destination are responsible for validation.

But here, we do parse and modify, so it's necessary to validate.

I am not stricly against validating all the time utf8, but I don't think it belongs to the messenger.


More information about the Spice-devel mailing list