Fix account_creator leak

This commit is contained in:
Erwan Croze 2016-10-12 11:53:51 +02:00
parent 628eb7f5c8
commit f9fe0fa968
2 changed files with 41 additions and 36 deletions

View file

@ -299,6 +299,7 @@ const char * linphone_account_creator_get_username(const LinphoneAccountCreator
LinphoneAccountCreatorStatus linphone_account_creator_set_phone_number(LinphoneAccountCreator *creator, const char *phone_number, const char *country_code) {
char *normalized_phone_number;
LinphoneAccountCreatorStatus return_status;
if (!phone_number || !country_code) {
if (!phone_number && !country_code) {
creator->phone_number = NULL;
@ -322,19 +323,24 @@ LinphoneAccountCreatorStatus linphone_account_creator_set_phone_number(LinphoneA
const LinphoneDialPlan* plan = linphone_dial_plan_by_ccc(creator->phone_country_code);
int size = (int)strlen(phone_number);
if (linphone_dial_plan_is_generic(plan)) {
return LinphoneAccountCreatorCountryCodeInvalid;
return_status = LinphoneAccountCreatorCountryCodeInvalid;
goto end;
}
if (size < plan->nnl - 1) {
return LinphoneAccountCreatorPhoneNumberTooShort;
return_status = LinphoneAccountCreatorPhoneNumberTooShort;
goto end;
} else if (size > plan->nnl + 1) {
return LinphoneAccountCreatorPhoneNumberTooLong;
return_status = LinphoneAccountCreatorPhoneNumberTooLong;
goto end;
}
}
}
set_string(&creator->phone_number, normalized_phone_number, TRUE);
ms_free(normalized_phone_number);
return_status = LinphoneAccountCreatorOK;
return LinphoneAccountCreatorOK;
end:
ms_free(normalized_phone_number);
return return_status;
}
const char * linphone_account_creator_get_phone_number(const LinphoneAccountCreator *creator) {

View file

@ -38,39 +38,38 @@ public interface LinphoneAccountCreator {
static private Vector<Status> values = new Vector<Status>();
private final int mValue;
private final String mStringValue;
private static int mStatusNum = 0;
public final int value() { return mValue; }
public final static Status Ok = new Status(mStatusNum++, "Ok");
public final static Status Failed = new Status(mStatusNum++, "Failed");
public final static Status AccountCreated = new Status(mStatusNum++, "AccountCreated");
public final static Status AccountNotCreated = new Status(mStatusNum++, "AccountNotCreated");
public final static Status AccountExist = new Status(mStatusNum++, "AccountExist");
public final static Status AccountExistWithAlias = new Status(mStatusNum++, "AccountExistWithAlias");
public final static Status AccountNotExist = new Status(mStatusNum++, "AccountNotExist");
public final static Status AccountActivated = new Status(mStatusNum++, "AccountActivated");
public final static Status AccountAlreadyActivated = new Status(mStatusNum++, "AccountAlreadyActivated");
public final static Status AccountNotActivated = new Status(mStatusNum++, "AccountNotActivated");
public final static Status AccountLinked = new Status(mStatusNum++, "AccountLinked");
public final static Status AccountNotLinked = new Status(mStatusNum++, "AccountNotLinked");
public final static Status EmailInvalid = new Status(mStatusNum++, "EmailInvalid");
public final static Status UsernameInvalid = new Status(mStatusNum++, "UsernameInvalid");
public final static Status UsernameTooShort = new Status(mStatusNum++, "UsernameTooShort");
public final static Status UsernameTooLong = new Status(mStatusNum++, "UsernameTooLong");
public final static Status UsernameInvalidSize = new Status(mStatusNum++, "UsernameInvalidSize");
public final static Status PhoneNumberInvalid = new Status(mStatusNum++, "PhoneNumberInvalid");
public final static Status PhoneNumberTooShort = new Status(mStatusNum++, "PhoneNumberTooShort");
public final static Status PhoneNumberTooLong = new Status(mStatusNum++, "PhoneNumberTooLong");
public final static Status PhoneNumberUsedAccount = new Status(mStatusNum++, "PhoneNumberUsed");
public final static Status PhoneNumberUsedAlias = new Status(mStatusNum++, "PhoneNumberUsed");
public final static Status PhoneNumberNotUsed = new Status(mStatusNum++, "PhoneNumberNotUsed");
public final static Status PasswordTooShort = new Status(mStatusNum++, "PasswordTooShort");
public final static Status PasswordTooLong = new Status(mStatusNum++, "PasswordTooLong");
public final static Status DomainInvalid = new Status(mStatusNum++, "DomainInvalid");
public final static Status RouteInvalid = new Status(mStatusNum++, "RouteInvalid");
public final static Status DisplayNameInvalid = new Status(mStatusNum++, "DisplayNameInvalid");
public final static Status TransportNotSupported = new Status(mStatusNum++, "TransportNotSupported");
public final static Status CountryCodeInvalid = new Status(mStatusNum++, "CountryCodeInvalid");
public final static Status Ok = new Status(0, "Ok");
public final static Status Failed = new Status(1, "Failed");
public final static Status AccountCreated = new Status(2, "AccountCreated");
public final static Status AccountNotCreated = new Status(3, "AccountNotCreated");
public final static Status AccountExist = new Status(4, "AccountExist");
public final static Status AccountExistWithAlias = new Status(5, "AccountExistWithAlias");
public final static Status AccountNotExist = new Status(6, "AccountNotExist");
public final static Status AccountActivated = new Status(7, "AccountActivated");
public final static Status AccountAlreadyActivated = new Status(8, "AccountAlreadyActivated");
public final static Status AccountNotActivated = new Status(9, "AccountNotActivated");
public final static Status AccountLinked = new Status(10, "AccountLinked");
public final static Status AccountNotLinked = new Status(11, "AccountNotLinked");
public final static Status EmailInvalid = new Status(12, "EmailInvalid");
public final static Status UsernameInvalid = new Status(13, "UsernameInvalid");
public final static Status UsernameTooShort = new Status(14, "UsernameTooShort");
public final static Status UsernameTooLong = new Status(15, "UsernameTooLong");
public final static Status UsernameInvalidSize = new Status(16, "UsernameInvalidSize");
public final static Status PhoneNumberInvalid = new Status(17, "PhoneNumberInvalid");
public final static Status PhoneNumberTooShort = new Status(18, "PhoneNumberTooShort");
public final static Status PhoneNumberTooLong = new Status(19, "PhoneNumberTooLong");
public final static Status PhoneNumberUsedAccount = new Status(20, "PhoneNumberUsed");
public final static Status PhoneNumberUsedAlias = new Status(21, "PhoneNumberUsed");
public final static Status PhoneNumberNotUsed = new Status(22, "PhoneNumberNotUsed");
public final static Status PasswordTooShort = new Status(23, "PasswordTooShort");
public final static Status PasswordTooLong = new Status(24, "PasswordTooLong");
public final static Status DomainInvalid = new Status(25, "DomainInvalid");
public final static Status RouteInvalid = new Status(26, "RouteInvalid");
public final static Status DisplayNameInvalid = new Status(27, "DisplayNameInvalid");
public final static Status TransportNotSupported = new Status(28, "TransportNotSupported");
public final static Status CountryCodeInvalid = new Status(29, "CountryCodeInvalid");
private Status(int value, String stringValue) {
mValue = value;