mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-06 17:50:16 +01:00
glib-aux: treat '=' as special character in nm_unbase64char()
This will be useful.
This commit is contained in:
parent
e3240781b1
commit
3571292d97
3 changed files with 11 additions and 2 deletions
|
|
@ -144,7 +144,9 @@ _test_unbase64char(char ch, gboolean maybe_invalid)
|
|||
g_assert(!maybe_invalid);
|
||||
g_assert_cmpint(r, <, 0);
|
||||
g_assert_cmpint(nm_sd_utils_unbase64char(ch, TRUE), ==, G_MAXINT);
|
||||
g_assert_cmpint(nm_unbase64char(ch), ==, -ERANGE);
|
||||
} else {
|
||||
g_assert_cmpint(nm_unbase64char(ch), ==, r);
|
||||
g_assert_cmpint(r, ==, nm_sd_utils_unbase64char(ch, TRUE));
|
||||
if (r >= 0)
|
||||
g_assert_cmpint(r, <=, 255);
|
||||
|
|
|
|||
|
|
@ -6734,6 +6734,10 @@ nm_unbase64char(char c)
|
|||
return ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 1);
|
||||
case '/':
|
||||
return ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 1) + 1;
|
||||
case '=':
|
||||
/* The padding is a different kind of base64 character. Return
|
||||
* a special error code for it. */
|
||||
return -ERANGE;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1593,7 +1593,7 @@ test_unbase64char(void)
|
|||
g_assert_cmpint(nm_unbase64char('9'), ==, 61);
|
||||
g_assert_cmpint(nm_unbase64char('+'), ==, 62);
|
||||
g_assert_cmpint(nm_unbase64char('/'), ==, 63);
|
||||
g_assert_cmpint(nm_unbase64char('='), ==, -EINVAL);
|
||||
g_assert_cmpint(nm_unbase64char('='), ==, -ERANGE);
|
||||
g_assert_cmpint(nm_unbase64char('\0'), ==, -EINVAL);
|
||||
g_assert_cmpint(nm_unbase64char('\1'), ==, -EINVAL);
|
||||
g_assert_cmpint(nm_unbase64char('\x7F'), ==, -EINVAL);
|
||||
|
|
@ -1606,7 +1606,10 @@ test_unbase64char(void)
|
|||
base64 = nm_unbase64char((char) i);
|
||||
|
||||
if (base64 < 0) {
|
||||
g_assert_cmpint(base64, ==, -EINVAL);
|
||||
if (((char) i) == '=')
|
||||
g_assert_cmpint(base64, ==, -ERANGE);
|
||||
else
|
||||
g_assert_cmpint(base64, ==, -EINVAL);
|
||||
base64 = -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue