Fixed crash in password creation code

This commit is contained in:
michael starke
2014-10-21 20:27:09 +02:00
parent 8922914502
commit d25efba423

View File

@@ -46,7 +46,13 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
NSMutableString *password = [NSMutableString stringWithCapacity:length]; NSMutableString *password = [NSMutableString stringWithCapacity:length];
NSString *characters = allowedCharactersString(allowedCharacters); NSString *characters = allowedCharactersString(allowedCharacters);
while([password length] < length) { while([password length] < length) {
[password appendString:[characters randomCharacter]]; NSString *randomCharacter = [characters randomCharacter];
if([randomCharacter length] > 0) {
[password appendString:randomCharacter];
}
else {
break;
}
} }
return password; return password;
} }
@@ -69,6 +75,9 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
} }
- (NSString *)randomCharacter { - (NSString *)randomCharacter {
if([self length] == 0) {
return nil;
}
NSData *data = [NSData dataWithRandomBytes:sizeof(unsigned long)]; NSData *data = [NSData dataWithRandomBytes:sizeof(unsigned long)];
NSUInteger randomIndex; NSUInteger randomIndex;
[data getBytes:&randomIndex length:[data length]]; [data getBytes:&randomIndex length:[data length]];