Changeset 1250

Show
Ignore:
Timestamp:
01/19/10 01:24:17 (2 months ago)
Author:
astrange
Message:

Audit for crashes resulting from invalid characterAtIndex: calls.

Briefly tested, refs #473

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Subtitles/SubContext.m

    r1208 r1250  
    8181BOOL ParseFontVerticality(NSString **fontname) 
    8282{ 
    83         if ([*fontname characterAtIndex:0] == '@') { 
     83        if ([*fontname length] && [*fontname characterAtIndex:0] == '@') { 
    8484                *fontname = [*fontname substringFromIndex:1]; 
    8585                return YES; 
  • trunk/Subtitles/SubImport.mm

    r1233 r1250  
    208208{ 
    209209        NSMutableString *srt = STStandardizeStringNewlines(STLoadFileWithUnknownEncoding(path)); 
    210         if (!srt) return; 
     210        if (![srt length]) return; 
    211211                 
    212212        if ([srt characterAtIndex:0] == 0xFEFF) [srt deleteCharactersInRange:NSMakeRange(0,1)]; 
     
    326326        NSMutableString *cname = [NSMutableString stringWithFormat:@"%@", str]; 
    327327 
     328        if (![str length]) return str; 
     329         
    328330        if ([cname characterAtIndex:0] == '#' && [cname lengthOfBytesUsingEncoding:NSASCIIStringEncoding] == 7) 
    329331                cvalue = [NSString stringWithFormat:@"{\\1c&H%@%@%@&}", [cname substringWithRange:NSMakeRange(5,2)], [cname substringWithRange:NSMakeRange(3,2)], [cname substringWithRange:NSMakeRange(1,2)]]; 
     
    13371339{ 
    13381340        if (self = [super init]) { 
    1339                 if ([l characterAtIndex:[l length]-1] != '\n') l = [l stringByAppendingString:@"\n"]; 
     1341                int length = [l length]; 
     1342                if (!length || [l characterAtIndex:length-1] != '\n') l = [l stringByAppendingString:@"\n"]; 
    13401343                line = [l retain]; 
    13411344                begin_time = s;