Repository: ranger
Updated Branches:
  refs/heads/master a7163cb91 -> 4c1e80e6b


RANGER-1862:generalName.get(1) cause IndexOutOfBoundsException in NiFiClient

Signed-off-by: peng.jianhua <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/4c1e80e6
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/4c1e80e6
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/4c1e80e6

Branch: refs/heads/master
Commit: 4c1e80e6bb4262a4e11dbf5dfe9b9aad00fabc14
Parents: a7163cb
Author: zhangqiang2 <[email protected]>
Authored: Wed Nov 1 16:08:29 2017 +0800
Committer: peng.jianhua <[email protected]>
Committed: Fri Nov 3 14:01:28 2017 +0800

----------------------------------------------------------------------
 .../ranger/services/nifi/client/NiFiClient.java      | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/4c1e80e6/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java
----------------------------------------------------------------------
diff --git 
a/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java
 
b/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java
index c03bc12..800a2b2 100644
--- 
a/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java
+++ 
b/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java
@@ -196,20 +196,21 @@ public class NiFiClient {
                 return new ArrayList<>();
             }
 
-            final List<String> result = new ArrayList<>();
-            for (final List<?> generalName : altNames) {
+                       final List<String> result = new ArrayList<>();
+                       for (final List<?> generalName : altNames) {
                 /**
                  * generalName has the name type as the first element a String 
or byte array for the second element. We return any general names that are 
String types.
                  *
                  * We don't inspect the numeric name type because some 
certificates incorrectly put IPs and DNS names under the wrong name types.
                  */
-                final Object value = generalName.get(1);
-                if (value instanceof String) {
-                    result.add(((String) value).toLowerCase());
-                }
+                               if (generalName.size() > 1) {
+                                       final Object value = generalName.get(1);
+                                       if (value instanceof String) {
+                                               result.add(((String) 
value).toLowerCase());
+                                       }
+                               }
 
             }
-
             return result;
         }
     }

Reply via email to