]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
util/tests: Test that talloc_keep_secret() does not overwrite the name
authorPavel Filipenský <pfilipensky@samba.org>
Wed, 11 Mar 2026 18:37:11 +0000 (19:37 +0100)
committerPavel Filipensky <pfilipensky@samba.org>
Wed, 25 Mar 2026 20:10:37 +0000 (20:10 +0000)
Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
lib/util/tests/test_talloc_keep_secret.c

index 78ef7619394f73c5b0c748dd9893c8b1cc323b45..cfb27b3a9cf56895313d574c6247ac516e3ef637 100644 (file)
@@ -24,7 +24,9 @@ static void test_talloc_keep_secret(void ** state)
        TALLOC_CTX *pool = NULL;
        char *ptr1 = NULL;
        char *ptr2 = NULL;
+       char *ptr3 = NULL;
        const char *ptr1_talloc_name = NULL;
+       const char *ptr3_talloc_name = NULL;
        size_t ptr1_size;
        size_t i;
 
@@ -63,6 +65,24 @@ static void test_talloc_keep_secret(void ** state)
                assert_int_not_equal(ptr2[0], ptr2[i]);
        }
 
+       ptr3 = talloc_zero(pool, char);
+       *ptr3 = 0;
+       ptr3_talloc_name = talloc_get_name(ptr3);
+       assert_string_equal(ptr3_talloc_name, "char");
+
+       /*
+        * talloc_keep_secret() does NOT change the talloc name if the name
+        * does NOT reveal the memory content.
+        */
+       talloc_keep_secret(ptr3);
+
+       ptr3_talloc_name = talloc_get_name(ptr3);
+       assert_string_equal(ptr3_talloc_name, "char");
+
+       expect_string(rep_memset_explicit, dest, "");
+       expect_value(rep_memset_explicit, ch, (int)'\0');
+       expect_value(rep_memset_explicit, count, 1);
+
        talloc_free(pool);
 }