Repository: hadoop
Updated Branches:
  refs/heads/branch-2 744db4787 -> 2ca76df21


HDFS-7771. fuse_dfs should permit FILE: on the front of KRB5CCNAME (cmccabe)

(cherry picked from commit 50625e660ac0f76e7fe46d55df3d15cbbf058753)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2ca76df2
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2ca76df2
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2ca76df2

Branch: refs/heads/branch-2
Commit: 2ca76df21a3dceef27714744b333bf39c381ca3e
Parents: 744db47
Author: Colin Patrick Mccabe <cmcc...@cloudera.com>
Authored: Wed Feb 11 12:14:23 2015 -0800
Committer: Colin Patrick Mccabe <cmcc...@cloudera.com>
Committed: Wed Feb 11 12:14:56 2015 -0800

----------------------------------------------------------------------
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt         |  3 +++
 .../src/main/native/fuse-dfs/fuse_connect.c         | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ca76df2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt 
b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index c8f96b3..923e8f8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -618,6 +618,9 @@ Release 2.7.0 - UNRELEASED
     HDFS-7736. Fix typos in dfsadmin/fsck/snapshotDiff usage messages.
     (Brahma Reddy Battula via wheat9)
 
+    HDFS-7771. fuse_dfs should permit FILE: on the front of KRB5CCNAME
+    (cmccabe)
+
 Release 2.6.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ca76df2/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_connect.c
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_connect.c 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_connect.c
index 218c5c9..8a2a00b 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_connect.c
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_connect.c
@@ -28,6 +28,7 @@
 #include <search.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <sys/time.h>
 #include <sys/types.h>
 #include <utime.h>
@@ -358,6 +359,15 @@ static void hdfsConnExpiry(void)
   pthread_mutex_unlock(&gConnMutex);
 }
 
+// The Kerberos FILE: prefix.  This indicates that the kerberos ticket cache
+// specifier is a file.  (Note that we also assume that the specifier is a file
+// if no prefix is present.)
+#define KRB_FILE_PREFIX "FILE:"
+
+// Length of the Kerberos file prefix, which is equal to the string size in
+// bytes minus 1 (because we don't count the null terminator in the length.)
+#define KRB_FILE_PREFIX_LEN (sizeof(KRB_FILE_PREFIX) - 1)
+
 /**
  * Find the Kerberos ticket cache path.
  *
@@ -414,6 +424,12 @@ done:
   } else {
     path[pathIdx] = '\0';
   }
+  if (strncmp(path, KRB_FILE_PREFIX, KRB_FILE_PREFIX_LEN) == 0) {
+    fprintf(stderr, "stripping " KRB_FILE_PREFIX " from the front of "
+            "KRB5CCNAME.\n");
+    memmove(path, path + KRB_FILE_PREFIX_LEN,
+            strlen(path + KRB_FILE_PREFIX_LEN) + 1);
+  }
 }
 
 /**

Reply via email to