From 34b8ec1e5cc8bf27efafb541d8095253ea578f9c Mon Sep 17 00:00:00 2001 From: Jeffrey Crowell Date: Mon, 8 Dec 2014 10:46:21 -0500 Subject: [PATCH] fix handling broken unicode character hang fix from pagespeed change https://code.google.com/p/modpagespeed/source/detail?r=4389 --- cpp/src/phonenumbers/utf/unilib.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/src/phonenumbers/utf/unilib.cc b/cpp/src/phonenumbers/utf/unilib.cc index 918134e..e890f97 100644 --- a/cpp/src/phonenumbers/utf/unilib.cc +++ b/cpp/src/phonenumbers/utf/unilib.cc @@ -53,8 +53,8 @@ int SpanInterchangeValid(const char* begin, int byte_length) { int bytes_consumed = charntorune(&rune, p, end - p); // We want to accept Runeerror == U+FFFD as a valid char, but it is used // by chartorune to indicate error. Luckily, the real codepoint is size 3 - // while errors return bytes_consumed == 1. - if ((rune == Runeerror && bytes_consumed == 1) || + // while errors return bytes_consumed <= 1. + if ((rune == Runeerror && bytes_consumed <= 1) || !IsInterchangeValidCodepoint(rune)) { break; // Found } -- 2.7.4