summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkerz@chromium.org <kerz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 20:54:15 +0000
committerkerz@chromium.org <kerz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 20:54:15 +0000
commit03840cff41944a7d5a637cc3f9f49abeb2983269 (patch)
tree95efc37cc10de2a8fa7708ea464e74cd0ad435ad
parent1b8fc7457ffdb5ff672e9abeec9334d8b3279a9c (diff)
downloadchromium_src-03840cff41944a7d5a637cc3f9f49abeb2983269.zip
chromium_src-03840cff41944a7d5a637cc3f9f49abeb2983269.tar.gz
chromium_src-03840cff41944a7d5a637cc3f9f49abeb2983269.tar.bz2
Merge 196542 "Handle NullPointerException when verifying EKU ext..."
> Handle NullPointerException when verifying EKU extension. > > The code in X509Util.verifyKeyUsage() calls certificate.getExtendedKeyUsage() > which can crash due to an Android platform bug. It looks like this can only > happen when the EKU extension data is malformed, so handle this special case > by returning false in the function. > > BUG=233610 > > Review URL: https://chromiumcodereview.appspot.com/13829011 TBR=digit@chromium.org Review URL: https://codereview.chromium.org/14858028 git-svn-id: svn://svn.chromium.org/chrome/branches/1453/src@199266 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--net/android/java/src/org/chromium/net/X509Util.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
index 15481e9..40beaf9 100644
--- a/net/android/java/src/org/chromium/net/X509Util.java
+++ b/net/android/java/src/org/chromium/net/X509Util.java
@@ -150,7 +150,15 @@ public class X509Util {
* TrustManager and that change is shipped to a large majority of Android users.
*/
static boolean verifyKeyUsage(X509Certificate certificate) throws CertificateException {
- List<String> ekuOids = certificate.getExtendedKeyUsage();
+ List<String> ekuOids;
+ try {
+ ekuOids = certificate.getExtendedKeyUsage();
+ } catch (NullPointerException e) {
+ // getExtendedKeyUsage() can crash due to an Android platform bug. This probably
+ // happens when the EKU extension data is malformed so return false here.
+ // See http://crbug.com/233610
+ return false;
+ }
if (ekuOids == null)
return true;