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); + } } /**