test-cpu-set-util: fix allocation size check on i386 v239-21 v239-22
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 4 Jun 2019 07:40:38 +0000 (09:40 +0200)
committerThe Plumber <50238977+systemd-rhel-bot@users.noreply.github.com>
Mon, 9 Dec 2019 12:13:24 +0000 (13:13 +0100)
We get just 28 bytes not 32 as on 64-bit architectures (__cpu_set_t is 4 bytes,
we need at least 26, so 28 satisfies the constraints).

(cherry picked from commit 64412970ac0d4b6f5c4bbd8816edc9bff9eab2de)

Related: #1734787

src/test/test-cpu-set-util.c

index 3456add989b428f28422267a7c2ab490e9334979..136eaca82da501e7ba7ccca4c3601dd3f8407b2e 100644 (file)
@@ -256,7 +256,9 @@ static void test_cpu_set_to_from_dbus(void) {
         assert_se(array);
         assert_se(allocated == c.allocated);
 
-        assert(memcmp(array, expected, sizeof expected) == 0);
+        assert_se(allocated <= sizeof expected);
+        assert_se(allocated >= DIV_ROUND_UP(201u, 8u)); /* We need at least 201 bits for our mask */
+        assert(memcmp(array, expected, allocated) == 0);
 
         assert_se(cpu_set_from_dbus(array, allocated, &c2) == 0);
         assert_se(c2.set);