[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