[Spice-devel] [spice-gtk v1] file-xfer: Fix bad filename encoding

Victor Toso victortoso at redhat.com
Wed Apr 12 11:57:19 UTC 2017


On Wed, Apr 12, 2017 at 07:18:54AM -0400, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > From: Victor Toso <me at victortoso.com>
> > 
> > Manual for G_FILE_ATTRIBUTE_STANDARD_NAME states:
> >  > The name is the on-disk filename which may not be in any known
> >  > encoding, and can thus not be generally displayed as is.
> > 
> > Considering a file named "ěščřžýáíé", if we use
> > G_FILE_ATTRIBUTE_STANDARD_NAME get the file name, we will have the
> > following 72 char long string:
> > "\xc4\x9b\xc5\xa1\xc4\x8d\xc5\x99\xc5\xbe\xc3\xbd\xc3\xa1\xc3\xad\xc3\xa9"
> > 
> > We should be use G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME instead which
> > will give us the correct 18 long utf-8 string: "ěščřžýáíé"
> > 
> > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1440206
> > 
> > Signed-off-by: Victor Toso <victortoso at redhat.com>
> 
> I suppose this happens when the filename encoding isn't utf8,
> ack

I think it is utf8 but G_FILE_ATTRIBUTE_STANDARD_NAME give the bytes as
string instead, did not checked why.

Thanks for the ack!
Just for information, I also tested on win7 and win10 guests and it
works now (it fails without the patch)

>
> > ---
> >  src/channel-main.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/src/channel-main.c b/src/channel-main.c
> > index be7c852..c8de5f3 100644
> > --- a/src/channel-main.c
> > +++ b/src/channel-main.c
> > @@ -2846,7 +2846,7 @@ static void file_xfer_init_task_async_cb(GObject *obj,
> > GAsyncResult *res, gpoint
> >          goto failed;
> >  
> >      channel = spice_file_transfer_task_get_channel(xfer_task);
> > -    basename = g_file_info_get_attribute_as_string(info,
> > G_FILE_ATTRIBUTE_STANDARD_NAME);
> > +    basename = g_file_info_get_attribute_as_string(info,
> > G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME);
> >      file_size = g_file_info_get_attribute_uint64(info,
> >      G_FILE_ATTRIBUTE_STANDARD_SIZE);
> >  
> >      xfer_op = data;
> > --
> > 2.12.2
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/spice-devel
> > 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170412/1191ad17/attachment.sig>


More information about the Spice-devel mailing list