Commit 2f67105a authored by Thomas Haller's avatar Thomas Haller
Browse files

libnm-util: remove assert to nm_utils_ip4_netmask_to_prefix

Commit 240c92dd

 added an assert
to check that the input netmask is valid. Revert that commit for
the most part, some changes to the test function are not reverted.

We don't want to assert for a valid netmask, because it's
common to read the netmask from (untrusted) user input, so we
don't want to assert against it.

The caller *could* validate the netmask from untrusted sources, but
with the assert in place it cannot validate it in the most obvious way:

    prefix = nm_utils_ip4_netmask_to_prefix (netmask);
    if (netmask != nm_utils_ip4_prefix_to_netmask (prefix))
        goto fail;
Signed-off-by: Thomas Haller's avatarThomas Haller <>
parent 45a326d9
......@@ -1084,11 +1084,6 @@ nm_utils_ip4_netmask_to_prefix (guint32 netmask)
v <<= 1;
/* Assert that caller provided a valid netmask, without "holes" and all the
* first @prefix bits set.
g_return_val_if_fail (netmask == nm_utils_ip4_prefix_to_netmask (prefix), prefix);
return prefix;
......@@ -1780,16 +1780,11 @@ test_ip4_netmask_to_prefix (void)
if (netmask_holey == netmask)
(void) prefix_holey;
/* create an invalid netmask with holes and check that the function
* returns the longest prefix and logs an assert. */
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, "nm_utils_ip4_netmask_to_prefix: assertion 'netmask == nm_utils_ip4_prefix_to_netmask (prefix)' failed");
prefix_holey = nm_utils_ip4_netmask_to_prefix (netmask_holey);
g_test_assert_expected_messages ();
g_assert_cmpint (i, ==, prefix_holey);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment