* kinit.c: Only free stuff if it's not NULL. (Note: The krb5_free_*
authorDanilo Almeida <dalmeida@mit.edu>
Fri, 4 Feb 2000 23:55:21 +0000 (23:55 +0000)
committerDanilo Almeida <dalmeida@mit.edu>
Fri, 4 Feb 2000 23:55:21 +0000 (23:55 +0000)
routines probably should be fixed check for NULL pointers...)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12000 dc483132-0cff-0310-8789-dd5450dbe970

src/clients/kinit/ChangeLog
src/clients/kinit/kinit.c

index ca82dc719a4eeae4d4e06033a7e19a69b286015a..b3f0ab0c31299a76c673efe47fda418f36f0b006 100644 (file)
@@ -1,3 +1,7 @@
+2000-02-04  Danilo Almeida  <dalmeida@mit.edu>
+
+       * kinit.c: Only free stuff if it's not NULL.
+
 2000-02-04  Tom Yu  <tlyu@mit.edu>
 
        * Makefile.in (kinit): Fix to build on Unix again.
index df162ca51efba436059b32b837e6bcd03a9b2b71..509d30d023e745fdc0cb116e3ee24e4a86aaccf5 100644 (file)
@@ -826,7 +826,11 @@ int try_convert524(k5)
     if (!got_k4 || !got_k5)
        return 0;
 
-    increds.client = 0;
+    memset((char *) &increds, 0, sizeof(increds));
+    /*
+      From this point on, we can goto cleanup because increds is
+      initialized.
+    */
 
     /* or do this directly with krb524_convert_creds_kdc */
     krb524_init_ets(k5->ctx);
@@ -843,7 +847,6 @@ int try_convert524(k5)
        goto cleanup;
     }
 
-    memset((char *) &increds, 0, sizeof(increds));
     increds.client = k5->me;
     increds.server = kpcserver;
     increds.times.endtime = 0;
@@ -887,10 +890,12 @@ int try_convert524(k5)
 
  cleanup:
     memset(&v4creds, 0, sizeof(v4creds));
-    krb5_free_creds(k5->ctx, v5creds);
+    if (v5creds)
+        krb5_free_creds(k5->ctx, v5creds);
     increds.client = 0;
     krb5_free_cred_contents(k5->ctx, &increds);
-    krb5_free_principal(k5->ctx, kpcserver);
+    if (kpcserver)
+        krb5_free_principal(k5->ctx, kpcserver);
     return !(code || icode);
 }
 #endif /* HAVE_KRB524 */