mit-kdb: Do not overwrite the error code in failure case.
authorGünther Deschner <gd@samba.org>
Thu, 15 May 2014 07:05:25 +0000 (09:05 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 17 Mar 2016 03:32:28 +0000 (04:32 +0100)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Sumit Bose <sbose@redhat.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/mit-kdb/kdb_samba_policies.c

index 75c8c837a27f7660beade80976444367a7481cbb..2e9f9ef0c5a9af0792ca4b1c751e060233d399cf 100644 (file)
@@ -127,17 +127,19 @@ krb5_error_code kdb_samba_db_check_policy_as(krb5_context context,
                                             netbios_name,
                                             password_change,
                                             &int_data);
-       if (code) {
-               goto done;
-       }
 
-       d = ks_make_data(int_data.data, int_data.length);
+       if (int_data.length && int_data.data) {
 
-       code = decode_krb5_padata_sequence(&d, &e_data);
-       if (code == 0) {
-               *e_data_out = e_data;
-       }
+               /* make sure the mapped return code is returned - gd */
+               int code_tmp;
 
+               d = ks_make_data(int_data.data, int_data.length);
+
+               code_tmp = decode_krb5_padata_sequence(&d, &e_data);
+               if (code_tmp == 0) {
+                       *e_data_out = e_data;
+               }
+       }
 done:
        free(realm);
        free(server_name);