From 12a4a3175aabc597dd630a4388a4bb177fe56cff Mon Sep 17 00:00:00 2001 From: David Yonge-Mallo Date: Tue, 30 Jun 2015 11:39:39 +0200 Subject: [PATCH] fix NPE in ShortNumberInfo when isPossibleNumber is called on a region with no ShortNumberMetadata --- cpp/src/phonenumbers/shortnumberinfo.cc | 3 +++ .../src/com/google/i18n/phonenumbers/ShortNumberInfo.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/cpp/src/phonenumbers/shortnumberinfo.cc b/cpp/src/phonenumbers/shortnumberinfo.cc index 2bd73fc66..cc6876e9e 100644 --- a/cpp/src/phonenumbers/shortnumberinfo.cc +++ b/cpp/src/phonenumbers/shortnumberinfo.cc @@ -126,6 +126,9 @@ bool ShortNumberInfo::IsPossibleShortNumber(const PhoneNumber& number) const { for (list::const_iterator it = region_codes.begin(); it != region_codes.end(); ++it) { const PhoneMetadata* phone_metadata = GetMetadataForRegion(*it); + if (!phone_metadata) { + continue; + } if (matcher_api_->MatchesPossibleNumber(short_number, phone_metadata->general_desc())) { return true; diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java index 401d260d7..0e1056c78 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java @@ -156,6 +156,9 @@ public class ShortNumberInfo { String shortNumber = getNationalSignificantNumber(number); for (String region : regionCodes) { PhoneMetadata phoneMetadata = MetadataManager.getShortNumberMetadataForRegion(region); + if (phoneMetadata == null) { + continue; + } if (matcherApi.matchesPossibleNumber(shortNumber, phoneMetadata.getGeneralDesc())) { return true; }