Fix more asprintf warnings and some error path errors.
[jra/samba/.git] / source3 / libads / util.c
index d23c36f3269fc2bb4e0b72c362bedd0a10df5adb..2c7ccfebd6cf53cb826123866dcf4900f9839883 100644 (file)
@@ -33,7 +33,7 @@ ADS_STATUS ads_change_trust_account_password(ADS_STRUCT *ads, char *host_princip
                return ADS_ERROR_SYSTEM(ENOENT);
        }
 
-       new_password = generate_random_str(DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH);
+       new_password = generate_random_str(talloc_tos(), DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH);
     
        ret = kerberos_set_password(ads->auth.kdc_server, host_principal, password, host_principal, new_password, ads->auth.time_offset);
 
@@ -71,7 +71,11 @@ ADS_STATUS ads_guess_service_principal(ADS_STRUCT *ads,
 
                strlower_m(server);
                strupper_m(server_realm);
-               asprintf(&princ, "ldap/%s@%s", server, server_realm);
+               if (asprintf(&princ, "ldap/%s@%s", server, server_realm) == -1) {
+                       SAFE_FREE(server);
+                       SAFE_FREE(server_realm);
+                       return ADS_ERROR(LDAP_NO_MEMORY);
+               }
 
                SAFE_FREE(server);
                SAFE_FREE(server_realm);
@@ -93,7 +97,11 @@ ADS_STATUS ads_guess_service_principal(ADS_STRUCT *ads,
 
                strlower_m(server);
                strupper_m(server_realm);
-               asprintf(&princ, "ldap/%s@%s", server, server_realm);
+               if (asprintf(&princ, "ldap/%s@%s", server, server_realm) == -1) {
+                       SAFE_FREE(server);
+                       SAFE_FREE(server_realm);
+                       return ADS_ERROR(LDAP_NO_MEMORY);
+               }
 
                SAFE_FREE(server);
                SAFE_FREE(server_realm);