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 */