[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4733-gbadf7dc

Jeremy Allison jra at samba.org
Tue Dec 23 19:45:18 GMT 2008


The branch, v3-3-test has been updated
       via  badf7dc63fe96930700e7ea04d6d6f66a7a8c1f3 (commit)
      from  0f02a165e23d716dcf3791eeaa6a5afebe7a1f88 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit badf7dc63fe96930700e7ea04d6d6f66a7a8c1f3
Author: Jeremy Allison <jeremy at jeremy-desktop.(none)>
Date:   Tue Dec 23 11:45:40 2008 -0800

    More asprintf warning fixes.
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source/libads/krb5_setpw.c  |   27 ++++++++++++++++++---------
 source/passdb/login_cache.c |    7 +++----
 2 files changed, 21 insertions(+), 13 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libads/krb5_setpw.c b/source/libads/krb5_setpw.c
index 719f3bd..be23f41 100644
--- a/source/libads/krb5_setpw.c
+++ b/source/libads/krb5_setpw.c
@@ -602,7 +602,13 @@ ADS_STATUS ads_krb5_set_password(const char *kdc_host, const char *princ,
 	}
 	realm++;
 
-	asprintf(&princ_name, "kadmin/changepw@%s", realm);
+	if (asprintf(&princ_name, "kadmin/changepw@%s", realm) == -1) {
+		krb5_cc_close(context, ccache);
+                krb5_free_context(context);
+		DEBUG(1,("asprintf failed\n"));
+		return ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
+	}
+
 	ret = smb_krb5_parse_name(context, princ_name, &creds.server);
 	if (ret) {
 		krb5_cc_close(context, ccache);
@@ -733,8 +739,13 @@ static ADS_STATUS ads_krb5_chg_password(const char *kdc_host,
     krb5_get_init_creds_opt_set_proxiable(&opts, 0);
 
     /* We have to obtain an INITIAL changepw ticket for changing password */
-    asprintf(&chpw_princ, "kadmin/changepw@%s",
-				(char *) krb5_princ_realm(context, princ));
+    if (asprintf(&chpw_princ, "kadmin/changepw@%s",
+				(char *) krb5_princ_realm(context, princ)) == -1) {
+	krb5_free_context(context);
+	DEBUG(1,("ads_krb5_chg_password: asprintf fail\n"));
+	return ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
+    }
+
     password = SMB_STRDUP(oldpw);
     ret = krb5_get_init_creds_password(context, &creds, princ, password,
 					   kerb_prompter, NULL, 
@@ -804,16 +815,14 @@ ADS_STATUS ads_set_machine_password(ADS_STRUCT *ads,
 	  as otherwise the server might end up setting the password for a user
 	  instead
 	 */
-	asprintf(&principal, "%s@%s", machine_account, ads->config.realm);
+	if (asprintf(&principal, "%s@%s", machine_account, ads->config.realm) < 0) {
+		return ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
+	}
 	
 	status = ads_krb5_set_password(ads->auth.kdc_server, principal, 
 				       password, ads->auth.time_offset);
 	
-	free(principal);
-
+	SAFE_FREE(principal);
 	return status;
 }
-
-
-
 #endif
diff --git a/source/passdb/login_cache.c b/source/passdb/login_cache.c
index 8222f77..4e14293 100644
--- a/source/passdb/login_cache.c
+++ b/source/passdb/login_cache.c
@@ -35,14 +35,13 @@ bool login_cache_init(void)
 	/* skip file open if it's already opened */
 	if (cache) return True;
 
-	asprintf(&cache_fname, "%s/%s", lp_lockdir(), LOGIN_CACHE_FILE);
-	if (cache_fname)
-		DEBUG(5, ("Opening cache file at %s\n", cache_fname));
-	else {
+	if (asprintf(&cache_fname, "%s/%s", lp_lockdir(), LOGIN_CACHE_FILE) == -1) {
 		DEBUG(0, ("Filename allocation failed.\n"));
 		return False;
 	}
 
+	DEBUG(5, ("Opening cache file at %s\n", cache_fname));
+
 	cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT,
 	                     O_RDWR|O_CREAT, 0644);
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list