Corrected several memory leaks and unreferenced memory access conditions
authorRichard Basch <probe@mit.edu>
Fri, 15 Mar 1996 19:35:51 +0000 (19:35 +0000)
committerRichard Basch <probe@mit.edu>
Fri, 15 Mar 1996 19:35:51 +0000 (19:35 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7644 dc483132-0cff-0310-8789-dd5450dbe970

src/slave/ChangeLog
src/slave/kprop.c

index 8c2eaa91844be9750cb606de1e605f69787f7694..7a2ea9c3dddcf5e4322847c9f24a0e46decee710 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar 15 14:33:06 1996  Richard Basch  <basch@lehman.com>
+
+       * kprop.c: Corrected various memory leaks and unreferenced 
+       memory access conditions.
+
 Tue Mar 12 14:01:32 1996  Richard Basch  <basch@lehman.com>
 
        * kprop.c: Write a byte to the last-prop file to ensure the file
index c0c315cc4e7226bfad76e972b55995bfe70e4f75..a5842d34bead00c71d6537d297cee5cf7ef7344d 100644 (file)
@@ -63,7 +63,7 @@ krb5_address  sender_addr;
 krb5_address   receiver_addr;
 
 void   PRS
-       PROTOTYPE((krb5_context, char **));
+       PROTOTYPE((int, char **));
 void   get_tickets
        PROTOTYPE((krb5_context));
 static void usage 
@@ -104,8 +104,9 @@ main(argc, argv)
        krb5_auth_context auth_context;
        char    Errmsg[256];
        
-       PRS(context, argv);
        krb5_init_context(&context);
+       krb5_init_ets(context);
+       PRS(argc, argv);
        get_tickets(context);
 
        database_fd = open_database(context, file, &database_size);
@@ -130,16 +131,14 @@ main(argc, argv)
        exit(0);
 }
 
-void PRS(context, argv)
-       krb5_context context;
+void PRS(argc, argv)
+       int     argc;
        char    **argv;
 {
        register char   *word, ch;
        
-       krb5_init_context(&context);
-       krb5_init_ets(context);
        progname = *argv++;
-       while (word = *argv++) {
+       while (--argc && (word = *argv++)) {
                if (*word == '-') {
                        word++;
                        while (word && (ch = *word++)) {
@@ -287,6 +286,10 @@ void get_tickets(context)
                (void) krb5_cc_destroy(context, ccache);
                exit(1);
        }
+
+       if (keytab)
+           (void) krb5_kt_close(context, keytab);
+       
        /*
         * Now destroy the cache right away --- the credentials we
         * need will be in my_creds.