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

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

krb5 commit: Fix minor memory leaks in kvno

daemon@ATHENA.MIT.EDU (Greg Hudson)
Mon Mar 13 13:01:41 2017

Date: Mon, 13 Mar 2017 13:01:38 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201703131701.v2DH1cuT002037@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/16d3eaf055a2e487ca28fa71e1e57802bc47310d
commit 16d3eaf055a2e487ca28fa71e1e57802bc47310d
Author: Greg Hudson <ghudson@mit.edu>
Date:   Sun Mar 12 12:42:37 2017 -0400

    Fix minor memory leaks in kvno
    
    In do_k5_kvno(), free allocated values on success as well as failure.
    In t_kdb.py, run kvno with multiple arguments to manifest this leak in
    asan and valgrind.  Reported by Cel Skeggs.
    
    ticket: 8558

 src/clients/kvno/kvno.c |    8 +++++---
 src/tests/t_kdb.py      |    3 +--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
index 80bee59..df40e39 100644
--- a/src/clients/kvno/kvno.c
+++ b/src/clients/kvno/kvno.c
@@ -326,9 +326,7 @@ static void do_v5_kvno (int count, char *names[],
                 printf(_("%s: kvno = %d\n"), princ, ticket->enc_part.kvno);
         }
 
-        continue;
-
-    error:
+    cleanup:
         if (server != NULL)
             krb5_free_principal(context, server);
         if (ticket != NULL)
@@ -337,7 +335,11 @@ static void do_v5_kvno (int count, char *names[],
             krb5_free_creds(context, out_creds);
         if (princ != NULL)
             krb5_free_unparsed_name(context, princ);
+        continue;
+
+    error:
         errors++;
+        goto cleanup;
     }
 
     if (keytab)
diff --git a/src/tests/t_kdb.py b/src/tests/t_kdb.py
index 6a3fabc..99cccd6 100755
--- a/src/tests/t_kdb.py
+++ b/src/tests/t_kdb.py
@@ -328,8 +328,7 @@ realm.run([kadminl, 'getprinc', 'alias'],
           expected_msg='Principal: canon@KRBTEST.COM\n')
 realm.run([kadminl, 'getprinc', 'canon'],
           expected_msg='Principal: canon@KRBTEST.COM\n')
-realm.run([kvno, 'alias'])
-realm.run([kvno, 'canon'])
+realm.run([kvno, 'alias', 'canon'])
 out = realm.run([klist])
 if 'alias@KRBTEST.COM\n' not in out or 'canon@KRBTEST.COM' not in out:
     fail('After fetching alias and canon, klist is missing one or both')
_______________________________________________
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