From: Nalin Dahyabhai Date: Mon, 8 Sep 2014 17:15:40 +0000 (-0400) Subject: In ksu, handle typeless default_ccache_name values X-Git-Tag: krb5-1.14-alpha1~249 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bda574576a5a2d0613fecf12d820e0adcbedf95c;p=thirdparty%2Fkrb5.git 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] ticket: 8007 (new) target_version: 1.13 tags: pullup --- 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;