From d25efba42307792e19b334c4ded342a1b899ca13 Mon Sep 17 00:00:00 2001 From: michael starke Date: Tue, 21 Oct 2014 20:27:09 +0200 Subject: [PATCH] Fixed crash in password creation code --- MacPass/NSString+MPPasswordCreation.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MacPass/NSString+MPPasswordCreation.m b/MacPass/NSString+MPPasswordCreation.m index 06b42739..72d7fe6b 100644 --- a/MacPass/NSString+MPPasswordCreation.m +++ b/MacPass/NSString+MPPasswordCreation.m @@ -46,7 +46,13 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) { NSMutableString *password = [NSMutableString stringWithCapacity:length]; NSString *characters = allowedCharactersString(allowedCharacters); while([password length] < length) { - [password appendString:[characters randomCharacter]]; + NSString *randomCharacter = [characters randomCharacter]; + if([randomCharacter length] > 0) { + [password appendString:randomCharacter]; + } + else { + break; + } } return password; } @@ -69,6 +75,9 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) { } - (NSString *)randomCharacter { + if([self length] == 0) { + return nil; + } NSData *data = [NSData dataWithRandomBytes:sizeof(unsigned long)]; NSUInteger randomIndex; [data getBytes:&randomIndex length:[data length]];