From 1825e3a407db03b1e00aad148a4dc96d6a67a912 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Mon, 8 Sep 2014 13:15:40 -0400 Subject: [PATCH] In ksu, handle typeless default_ccache_name values When a configured or compiled-in default ccache name doesn't contain a cache type and ':' as a prefix, add one to the writeable value that we construct when we go to look it up. This lets the rest of the application always assume that it'll be there. [ghudson@mit.edu: minor style changes] (cherry picked from commit bda574576a5a2d0613fecf12d820e0adcbedf95c) ticket: 8007 version_fixed: 1.13 status: resolved --- src/clients/ksu/main.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/clients/ksu/main.c b/src/clients/ksu/main.c index 47fa8203e2..622c36af4a 100644 --- a/src/clients/ksu/main.c +++ b/src/clients/ksu/main.c @@ -819,7 +819,7 @@ get_configured_defccname(krb5_context context, char **target_out) { krb5_error_code retval; const char *defname; - char *target; + char *target = NULL; *target_out = NULL; @@ -838,7 +838,14 @@ get_configured_defccname(krb5_context context, char **target_out) } defname = krb5_cc_default_name(context); - target = (defname == NULL) ? NULL : strdup(defname); + if (defname != NULL) { + if (strchr(defname, ':') != NULL) { + target = strdup(defname); + } else { + if (asprintf(&target, "FILE:%s", defname) < 0) + target = NULL; + } + } if (target == NULL) { com_err(prog_name, ENOMEM, _("while determining target ccache name")); return ENOMEM; -- 2.47.2