Subject: gpt mishandles non ascii partition names

From: Phillip Susi <[email-masked]>
Date: Fri, 11 Oct 2013 14:58:57 -0400

Original bug report:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1238446

The gpt partition table has 16 bit characters for the name, which I
assume are supposed to be UTF-16, but the bloody uefi standard is moot
on the subject.  Currently parted simply decimates the characters,
throwing out the upper 8 bits.  This corrupts characters that aren't
simple ascii, and at some later point, strlist.c calls mbstrtowcs(),
which chokes on the corrupt name causing parted to bail out with
"Error during translation".

I think that gpt.c needs to translate the UTF-16 to the native
multibyte encoding, but I have no idea how to do that.  The C standard
conversion functions all seem to use the current locale and don't have
a way to override it if you know this string is in UTF-16 ( and maybe
the current locale is UTF-8 ).