g_utf8_find_next_char() doesn't do checks whether the char
is '\0' or not. We have to take care of that ourself.
This commit fixes heap-buffer-overflow found by test-hostname
ERROR: AddressSanitizer: heap-buffer-overflow on address
READ of size 1 at 0x60200000cd76 thread T0
#0 0x7f8b26920d08 in g_utf8_find_next_char glib/glib/gutf8.c:179
#1 0x55c2b8eacaee in pretty_hostname_to_ssid gnome-control-center/shell/hostname-helper.c:199
https://bugzilla.gnome.org/show_bug.cgi?id=782216
The empty string is not too useful as an SSID, an attempt to create a
hotspot fails:
(gnome-control-center:19371): network-cc-panel-WARNING **:
Failed to add new connection: (2)
A 'wireless' setting with a valid SSID is required if no AP path was given.
Use GLib's new transliteration API to avoid the shortcomings of iconv().
Also solve an existing problem where strings entered in decomposed forms
wouldn't be properly transliterated. Always normalise before attempting
transliteration.
Bump GLib dependency to 2.39.91 for the new feature.
https://bugzilla.gnome.org/show_bug.cgi?id=724194