mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-05 09:58:07 +02:00
keyfile: fix escaping ascii control characters in nm_keyfile_key_encode()
Matters when backslash escaping ascii charaters <= 0xF, to produce "\\XX" instead of "\\ X". For example tabulator is "\\09". This also can trigger an nm_assert() failure, when building with --with-more-asserts=5 (or higher).
This commit is contained in:
parent
97f8d21674
commit
89c89143b5
2 changed files with 6 additions and 1 deletions
|
|
@ -442,7 +442,7 @@ _keyfile_key_encode (const char *name,
|
|||
&& g_ascii_isxdigit (name[i + 2]))
|
||||
|| ( ch == ' '
|
||||
&& name[i + 1] == '\0'))
|
||||
g_string_append_printf (str, "\\%2X", ch);
|
||||
g_string_append_printf (str, "\\%02X", ch);
|
||||
else
|
||||
g_string_append_c (str, (char) ch);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,11 @@ test_encode_key (void)
|
|||
do_test_encode_key_bijection (kf, " ", "\\20 \\20");
|
||||
do_test_encode_key_decode_surjection (kf, "f\\20c", "f c");
|
||||
do_test_encode_key_decode_surjection (kf, "\\20\\20\\20", "\\20 \\20");
|
||||
|
||||
do_test_encode_key_bijection (kf, "\t", "\\09");
|
||||
do_test_encode_key_bijection (kf, "\t=x", "\\09\\3Dx");
|
||||
do_test_encode_key_bijection (kf, "(nm-openvpn-auth-dialog:10283): GdkPixbuf-DEBUG: \tCopy pixels == false",
|
||||
"(nm-openvpn-auth-dialog:10283): GdkPixbuf-DEBUG: \\09Copy pixels \\3D\\3D false");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue