r12059: Use random keytab names (so we get different keytabs, rather than
authorAndrew Bartlett <abartlet@samba.org>
Mon, 5 Dec 2005 01:38:26 +0000 (01:38 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:02 +0000 (13:47 -0500)
share the MEMORY: keytab).

Andrew Bartlett

source/auth/kerberos/kerberos_util.c

index 3437c943bb3a21c5a7fbebdd074d40479ed5c30d..a9ea6f9db396c67b5f615f414e3ce5f3f2e3f71f 100644 (file)
@@ -611,7 +611,8 @@ int create_memory_keytab(TALLOC_CTX *parent_ctx,
 {
        krb5_error_code ret;
        TALLOC_CTX *mem_ctx = talloc_new(parent_ctx);
-       const char *keytab_name = "MEMORY:";
+       const char *rand_string;
+       const char *keytab_name;
        krb5_keytab keytab;
        if (!mem_ctx) {
                return ENOMEM;
@@ -619,6 +620,19 @@ int create_memory_keytab(TALLOC_CTX *parent_ctx,
        
        *keytab_container = talloc(mem_ctx, struct keytab_container);
 
+       rand_string = generate_random_str(mem_ctx, 16);
+       if (!rand_string) {
+               talloc_free(mem_ctx);
+               return ENOMEM;
+       }
+
+       keytab_name = talloc_asprintf(mem_ctx, "MEMORY:%s", 
+                                     rand_string);
+       if (!keytab_name) {
+               talloc_free(mem_ctx);
+               return ENOMEM;
+       }
+
        /* Find the keytab */
        ret = krb5_kt_resolve(smb_krb5_context->krb5_context, keytab_name, &keytab);
        if (ret) {