Kerberos V 1.0.6 moved krb5_xfree() from krb5.h to k5-int.h, where it
really belonged (it was supposedly internal to the libraries and
wasn't part of the API).

At any rate, auth-kerberos.c in the ssh-1.2.27 distribution made use
of it in several places, so ssh won't compile with the new Kerberos.

The included patch simply expands the define:

  #define krb5_xfree(val) free((char FAR *)(val))

For closure over the diff, 'FAR' is defined in krb5.h.  I didn't want
to simply include the define to guard against krb5_xfree() being
multiply defined in the future (if it moves again).


--
Stephen L. Ulmer                              [EMAIL PROTECTED]
Systems Programmer                                http://www.ulmer.org/
Northeast Regional Data Center                      VOX: (352) 392-2061
University of Florida                               FAX: (352) 392-9440

diff -ruN ssh-1.2.27/auth-kerberos.c ssh-1.2.27-hacked/auth-kerberos.c
--- ssh-1.2.27/auth-kerberos.c  Wed May 12 07:19:23 1999
+++ ssh-1.2.27-hacked/auth-kerberos.c   Fri May 21 13:31:54 1999
@@ -120,10 +120,10 @@
       
       debug("Kerberos invalid service name (%.100s).", server);
       packet_send_debug("Kerberos invalid service name (%.100s).", server);
-      krb5_xfree(server);
+      free((char FAR *)server);
       return 0;
     }
-  krb5_xfree(server);
+  free((char FAR *)server);
   
   /* Extract the users name from the ticket client principal */
   problem = krb5_copy_principal(ssh_context, ticket->enc_part2->client,
@@ -159,7 +159,7 @@
   packet_put_string((char *) reply.data, reply.length);
   packet_send();
   packet_write_wait();
-  krb5_xfree(reply.data);
+  free((char FAR *)reply.data);
   return 1;
 }
 #endif /* KRB5 */

Reply via email to