[28312] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit: Check for asprintf failure in kdb5_util create

daemon@ATHENA.MIT.EDU (Greg Hudson)
Tue Apr 15 13:40:54 2014

Date: Tue, 15 Apr 2014 13:40:41 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201404151740.s3FHefGO004085@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/f5645d30cf83398640c386a612eb6f07c543286f
commit f5645d30cf83398640c386a612eb6f07c543286f
Author: Tomas Kuthan <tkuthan@gmail.com>
Date:   Thu Apr 10 15:16:06 2014 +0200

    Check for asprintf failure in kdb5_util create
    
    In add_admin_princ, remove build_name_with_realm and call asprintf
    directly instead.  Check for asprintf failure to avoid passing an
    undefined pointer to krb5_parse_name.
    
    [ghudson@mit.edu: rewrite commit message]
    
    ticket: 7902 (new)
    target_version: 1.12.2
    tags: pullup

 src/kadmin/dbutil/kadm5_create.c |   30 ++++--------------------------
 1 files changed, 4 insertions(+), 26 deletions(-)

diff --git a/src/kadmin/dbutil/kadm5_create.c b/src/kadmin/dbutil/kadm5_create.c
index 40f89a7..5d2854a 100644
--- a/src/kadmin/dbutil/kadm5_create.c
+++ b/src/kadmin/dbutil/kadm5_create.c
@@ -126,31 +126,6 @@ int kadm5_create_magic_princs(kadm5_config_params *params,
 }
 
 /*
- * Function: build_name_with_realm
- *
- * Purpose: concatenate a name and a realm to form a krb5 name
- *
- * Arguments:
- *
- *      name    (input) the name
- *      realm   (input) the realm
- *
- * Returns:
- *
- *      pointer to name@realm, in allocated memory, or NULL if it
- *      cannot be allocated
- *
- * Requires: both strings are null-terminated
- */
-static char *build_name_with_realm(char *name, char *realm)
-{
-    char *n;
-
-    asprintf(&n, "%s@%s", name, realm);
-    return n;
-}
-
-/*
  * Function: add_admin_princs
  *
  * Purpose: create admin principals
@@ -284,7 +259,10 @@ int add_admin_princ(void *handle, krb5_context context,
 
     memset(&ent, 0, sizeof(ent));
 
-    fullname = build_name_with_realm(name, realm);
+    if (asprintf(&fullname, "%s@%s", name, realm) < 0) {
+        com_err(progname, ENOMEM, _("while appending realm to principal"));
+        return ERR;
+    }
     ret = krb5_parse_name(context, fullname, &ent.principal);
     if (ret) {
         com_err(progname, ret, _("while parsing admin principal name"));
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post