]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Revert "lib/util: Avoid overwriting talloc chunk name in talloc_keep_secret()"
authorPavel Filipenský <pfilipensky@samba.org>
Wed, 11 Mar 2026 16:34:05 +0000 (17:34 +0100)
committerPavel Filipensky <pfilipensky@samba.org>
Wed, 25 Mar 2026 20:10:37 +0000 (20:10 +0000)
This reverts commit 7e693b55730ceba2ef326286a0c68d5d91324a22.

Without this commit, for memory allocated via e.g. talloc_strdup(),
talloc name would reveal memory content.

Signed-off-by: Pavel Filipenský <pfilipensky@samba.org>
lib/util/talloc_keep_secret.c
lib/util/tests/test_talloc_keep_secret.c

index c7d66a4d5e7bd9a4f1544cb5235b341c35966a2e..eb5bb80ff37fc330a965909526ea7c3c5e61ee69 100644 (file)
@@ -49,5 +49,6 @@ void _talloc_keep_secret(void *ptr, const char *name)
                return;
        }
 
+       talloc_set_name_const(ptr, name);
        talloc_set_destructor(ptr, talloc_keep_secret_destructor);
 }
index 7c39431694d9624d6e17d87b7024e30a85d1e1e9..66c3f7f3e7a1db267405ec31efb1b55cfe607309 100644 (file)
@@ -24,6 +24,7 @@ static void test_talloc_keep_secret(void ** state)
        TALLOC_CTX *pool = NULL;
        char *ptr1 = NULL;
        char *ptr2 = NULL;
+       const char *ptr1_talloc_name = NULL;
        size_t ptr1_size;
        size_t i;
 
@@ -36,6 +37,9 @@ static void test_talloc_keep_secret(void ** state)
 
        talloc_keep_secret(ptr1);
 
+       ptr1_talloc_name = talloc_get_name(ptr1);
+       assert_string_equal(ptr1_talloc_name, "ptr1");
+
        ptr1_size = talloc_get_size(ptr1);
        assert_int_equal(ptr1_size, strlen(ptr1) + 1);