You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by co...@apache.org on 2017/10/19 09:00:05 UTC
[24/26] sentry git commit: SENTRY-1993:
StringIndexOutOfBoundsException in HMSPathsDumper.java (Misha Dmitriev,
reviewed by Alexander Kolbasov, Sergio Pena, Vadim Spector)
SENTRY-1993: StringIndexOutOfBoundsException in HMSPathsDumper.java (Misha Dmitriev, reviewed by Alexander Kolbasov, Sergio Pena, Vadim Spector)
Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/09761c70
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/09761c70
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/09761c70
Branch: refs/heads/akolb-cli
Commit: 09761c709a08473a2c34f054218d0c34bd192492
Parents: 6e1651f
Author: Vadim Spector <vs...@cloudera.com>
Authored: Wed Oct 18 11:04:26 2017 -0700
Committer: Vadim Spector <vs...@cloudera.com>
Committed: Wed Oct 18 11:04:26 2017 -0700
----------------------------------------------------------------------
.../src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java | 3 ++-
.../test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sentry/blob/09761c70/sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java b/sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java
index 1267093..8a7c8a2 100644
--- a/sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java
+++ b/sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPathsDumper.java
@@ -129,7 +129,8 @@ public class HMSPathsDumper implements AuthzPathsDumper<HMSPaths> {
TPathEntry tChild = idMap.get(id);
String tChildPathElement = tChild.getPathElement();
- if (tChildPathElement.charAt(0) == DupDetector.REPLACEMENT_STRING_PREFIX) {
+ if (!tChildPathElement.isEmpty() &&
+ tChildPathElement.charAt(0) == DupDetector.REPLACEMENT_STRING_PREFIX) {
int dupStrIdx = Integer.parseInt(tChildPathElement.substring(1), 16);
tChildPathElement = dupStringValues.get(dupStrIdx);
}
http://git-wip-us.apache.org/repos/asf/sentry/blob/09761c70/sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java b/sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
index 6a4e32f..73e1ce2 100644
--- a/sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
+++ b/sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
@@ -50,7 +50,8 @@ public class TestHMSPathsFullDump {
"/user/hive/warehouse/db1/tbl11/part_duplicate1",
"/user/hive/warehouse/db1/tbl11/part_duplicate1/part_duplicate2",
"/user/hive/warehouse/db1/tbl11/part_duplicate2",
- "/user/hive/warehouse/db1/tbl11/part_duplicate2/part_duplicate1"));
+ "/user/hive/warehouse/db1/tbl11/part_duplicate2/part_duplicate1",
+ "/user/hive/warehouse/db1/tbl11/part_duplicate2//after_double_slash"));
// Not in Deserialized objects prefix paths
hmsPaths._addAuthzObject("db2", Lists.newArrayList("/user/hive/w2/db2"));
@@ -107,6 +108,7 @@ public class TestHMSPathsFullDump {
Assert.assertEquals(new HashSet<String>(Arrays.asList("db1.tbl11")), hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part_duplicate1", "part_duplicate2"}, false));
Assert.assertEquals(new HashSet<String>(Arrays.asList("db1.tbl11")), hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part_duplicate2"}, false));
Assert.assertEquals(new HashSet<String>(Arrays.asList("db1.tbl11")), hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part_duplicate2", "part_duplicate1"}, false));
+ Assert.assertEquals(new HashSet<String>(Arrays.asList("db1.tbl11")), hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part_duplicate2", "after_double_slash"}, false));
// This path is not under prefix, so should not be deserialized..
Assert.assertNull(hmsPaths2.findAuthzObject(new String[]{"user", "hive", "w2", "db2", "tbl21", "p1=1"}, true));