Ticket #473 (closed defect: fixed)
Subtitles occasionally throw NSRangeException from [NSCFString characterAtIndex:] in ParseFontVerticality
| Reported by: | pipian | Owned by: | astrange |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.2.1 |
| Component: | Subtitles | Version: | 1.2 |
| Severity: | normal | Keywords: | |
| Cc: |
Description
Upon viewing certain (possibly corrupt) subtitles (e.g. the SpoonSubs? v1 release of Hidamari Sketch x365 episode 3 near ), Perian crashes QuickTime by giving an alert box remarking about a "[NSCFString characterAtIndex:] Range or index out of bounds" error. At the very least, Perian should probably try to silently drop the subtitles instead of throwing an exception.
Crash log is attached, with critical crashed thread trace also copied below:
Thread 13 Crashed: 0 com.apple.CoreFoundation? 0x9756ae94 _TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION_ + 4 1 libobjc.A.dylib 0x95cfee3b objc_exception_throw + 40 2 com.apple.CoreFoundation? 0x9756adcb +[NSException raise:format:arguments:] + 155 3 com.apple.CoreFoundation? 0x9756ae0a +[NSException raise:format:] + 58 4 com.apple.Foundation 0x92560a03 -[NSCFString characterAtIndex:] + 115 5 org.perian.Perian 0x1589a286 ParseFontVerticality? + 38 6 org.perian.Perian 0x1589d462 -[SubATSUIRenderer spanChangedTag:span:div:param:] + 1506 7 org.perian.Perian 0x158791d2 SubParsePacket? + 2770 8 org.perian.Perian 0x1589e043 -[SubATSUIRenderer renderPacket:inContext:width:height:] + 83 9 org.perian.Perian 0x1589b92e SubRenderPacket? + 62 10 org.perian.Perian 0x15886194 TextSubCodecDrawBand? + 260 11 org.perian.Perian 0x15886084 TextSubCodecComponentDispatch? + 212 12 ...ple.CoreServices?.CarbonCore? 0x969c4935 CallComponentDispatch? + 29 13 ...ickTimeComponents.component 0x94af6897 ImageCodecDrawBand? + 43 14 ...ickTimeComponents.component 0x9449f0ef BaseCodec?_ImageCodecDrawBand_VideoDecodeThread + 35 15 com.apple.QuickTime 0x90110556 VideoDecodeThread? + 118 16 libSystem.B.dylib 0x95b6f155 _pthread_start + 321 17 libSystem.B.dylib 0x95b6f012 thread_start + 34

