From e8c74da8e229cf2dedd7e4693e39cce7913706f0 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 1 Nov 2014 22:04:23 +0100 Subject: [PATCH] Fix Bogus Comment state for nil-characters --- HTMLKit/HTMLTokenizer.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HTMLKit/HTMLTokenizer.m b/HTMLKit/HTMLTokenizer.m index 36935d3..b3f4102 100644 --- a/HTMLKit/HTMLTokenizer.m +++ b/HTMLKit/HTMLTokenizer.m @@ -1571,12 +1571,16 @@ - (void)HTMLTokenizerStateBogusComment { + NSMutableString *comment = [NSMutableString string]; NSString *characters = [_inputStreamReader consumeCharactersUpToCharactersInString:@">"]; - characters = [characters stringByReplacingOccurrencesOfString:@"\0" withString:@"0xFFFD"]; - _currentCommentToken = [[HTMLCommentToken alloc] initWithData:characters]; + characters = [characters stringByReplacingOccurrencesOfString:@"\0" withString:StringFromUniChar(REPLACEMENT_CHAR)]; + if (characters != nil) { + [comment appendString:characters]; + } + _currentCommentToken = [[HTMLCommentToken alloc] initWithData:comment]; [self emitToken:_currentCommentToken]; [self switchToState:HTMLTokenizerStateData]; -#warning Check if necessary + if ([_inputStreamReader consumeNextInputCharacter] == (UTF32Char)EOF) { [_inputStreamReader reconsumeCurrentInputCharacter]; }