From: Jeffrey Crowell Date: Mon, 8 Dec 2014 15:46:21 +0000 (-0500) Subject: fix handling broken unicode character hang X-Git-Tag: upstream/7.0.6~64 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34b8ec1e5cc8bf27efafb541d8095253ea578f9c;hp=1e538719f2aec83cf134a6ec0e520576f5266d05;p=platform%2Fupstream%2Flibphonenumber.git fix handling broken unicode character hang fix from pagespeed change https://code.google.com/p/modpagespeed/source/detail?r=4389 --- 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 }