r16201: Fix Klocwork 439
authorVolker Lendecke <vlendec@samba.org>
Tue, 13 Jun 2006 18:09:37 +0000 (18:09 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:17:24 +0000 (11:17 -0500)
(This used to be commit b369d0891afe8b777b837eaac317131232568ca7)

source3/libads/krb5_setpw.c

index 254ca7b2a3ad19b2c5720a9f1973007ba6ec60cb..ec2ff5afb1a444f10f7f513273fa014654cf8e4f 100644 (file)
@@ -528,7 +528,6 @@ ADS_STATUS ads_krb5_set_password(const char *kdc_host, const char *princ,
                DEBUG(1,("Failed to parse kadmin/changepw (%s)\n", error_message(ret)));
                return ADS_ERROR_KRB5(ret);
        }
-       free(princ_name);
 
        /* parse the principal we got as a function argument */
        ret = smb_krb5_parse_name(context, princ, &principal);
@@ -537,9 +536,12 @@ ADS_STATUS ads_krb5_set_password(const char *kdc_host, const char *princ,
                krb5_free_principal(context, creds.server);
                 krb5_free_context(context);
                DEBUG(1,("Failed to parse %s (%s)\n", princ_name, error_message(ret)));
+               free(princ_name);
                return ADS_ERROR_KRB5(ret);
        }
 
+       free(princ_name);
+
        /* The creds.server principal takes ownership of this memory.
                Remember to set back to original value before freeing. */
        orig_realm = *krb5_princ_realm(context, creds.server);