krb5 commit: In ksu, handle typeless default_ccache_name values

Greg Hudson ghudson at mit.edu
Mon Sep 8 14:55:07 EDT 2014


https://github.com/krb5/krb5/commit/bda574576a5a2d0613fecf12d820e0adcbedf95c
commit bda574576a5a2d0613fecf12d820e0adcbedf95c
Author: Nalin Dahyabhai <nalin at redhat.com>
Date:   Mon Sep 8 13:15:40 2014 -0400

    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 at mit.edu: minor style changes]
    
    ticket: 8007 (new)
    target_version: 1.13
    tags: pullup

 src/clients/ksu/main.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/clients/ksu/main.c b/src/clients/ksu/main.c
index 47fa820..622c36a 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;


More information about the cvs-krb5 mailing list