]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
heimdal:kdc: Always generate a PAC for S4U2Self
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 23 Nov 2021 04:30:50 +0000 (17:30 +1300)
committerJule Anger <janger@samba.org>
Sun, 24 Jul 2022 09:42:01 +0000 (11:42 +0200)
If we decided not to put a PAC into the ticket, mspac would be NULL
here, and the resulting ticket would not contain a PAC. This could
happen if there was a request to omit the PAC or the service did not
require authorization data. Ensure that we always generate a PAC.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 1f4f3018c5001b289b91959a72d00575c8fc0ac1)

selftest/knownfail_heimdal_kdc
source4/heimdal/kdc/krb5tgs.c

index 2025032a278bc04facef55d213907c7b62b80e7a..53cc8e6b6a2e14954397116eff67df89f6c77abf 100644 (file)
 ^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_rbcd_zeroed_client_checksum
 ^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_rbcd_zeroed_service_checksum
 ^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_s4u2self_forwardable
-^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_s4u2self_no_auth_data_required
 ^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_s4u2self_not_trusted_empty_allowed
 #
 ^samba.tests.krb5.s4u_tests.samba.tests.krb5.s4u_tests.S4UKerberosTests.test_constrained_delegation_no_auth_data_required
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_fast_service_ticket
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_fast_sid_mismatch_existing
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_fast_sid_mismatch_nonexisting
-^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_s4u2self_pac_request_false
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_tgs_req_from_rodc_no_requester_sid
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_tgs_req_no_requester_sid
 ^samba.tests.krb5.kdc_tgs_tests.samba.tests.krb5.kdc_tgs_tests.KdcTgsTests.test_tgs_requester_sid_missing_renew
index 6c5c51aa44874bd391f4eb95b056dfc7b76f0c67..dc356b4daa55a2c60f9c35f8c099a508574e49f3 100644 (file)
@@ -1846,12 +1846,13 @@ server_lookup:
            if (mspac) {
                krb5_pac_free(context, mspac);
                mspac = NULL;
-               ret = _kdc_pac_generate(context, s4u2self_impersonated_client, NULL, NULL, &mspac);
-               if (ret) {
-                   kdc_log(context, config, 0, "PAC generation failed for -- %s",
-                           tpn);
-                   goto out;
-               }
+           }
+
+           ret = _kdc_pac_generate(context, s4u2self_impersonated_client, NULL, NULL, &mspac);
+           if (ret) {
+               kdc_log(context, config, 0, "PAC generation failed for -- %s",
+                       tpn);
+               goto out;
            }
 
            /*